私は 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 を作成する必要がありますか?ViewModelModelPreferencesPresenterJDialog
たとえば、JSF を使用するように UI を変更したい場合、元の内部に新しいものを作成するPresenterと、移植が難しくなる多くの作業を強いられるように思えます。ModelView
明確にするためにコメントを追加してください。