私は Swing アプリケーションを作成しており、前の質問に加えて、Model-View-Presenterパターンを使用してユーザー インターフェイスをビジネス ロジックから分離することにしました。
アプリケーションが起動すると、次のコードが実行されます。
Model model = new BasicModel();
Presenter presenter = new Presenter(model);
View view = new SwingView(presenter);
presenter.setView(view);
presenter.init();
ユーザーインターフェイスを作成します。イベントは によって生成され、View
に委譲されPresenter
ます。その後Presenter
、 は を操作し、それに応じてModel
を更新しますView
。
一部のイベントを処理するには、ユーザーからさらに情報を取得する必要があります。これらのイベントの場合、Swing ビューが新しいJDialog
ウィンドウを生成するのが適切だと思います。
1行の考え方で、これがオリジナルの適切なコードである可能性があると感じさせますPresenter
:
public void handlePreferences() {
Preferences prefs = view.getPreferences();
model.setPreferences(prefs);
}
つまり、それぞれのコンテンツは、から取得してで更新するJDialog
必要がある個別のオブジェクトを表す必要があります。ただし、これには疑問が残ります。オブジェクトを表すために new を作成し、その中でイベント処理のために new を作成する必要がありますか?View
Model
Model
Preferences
Presenter
JDialog
たとえば、JSF を使用するように UI を変更したい場合、元の内部に新しいものを作成するPresenter
と、移植が難しくなる多くの作業を強いられるように思えます。Model
View
明確にするためにコメントを追加してください。