質問: プレゼンターはMVPパターンでGUIロジックを実行しますか? 私たちはMVPパターンを使って作業しています。私はGUIアクションに対処する方法が不思議でした。 例えば、ユーザがグリッドから行を削除したい場合、ユーザは削除ボタンを押す。この時点で、次の2つのことができます。 1) `_presenter.DeleteRow()`を呼び出すと、プレゼンターは `_view.SelectedRow` を呼び出します。プレゼンターは `view.AskUserForConfirmation()`を呼び出し、 `DialogResult.OK` を返すと、プレゼンターは実際にはそのオブジェクトを削除し、グリッドを更新します。 `DialogResult` が `OK` の場合、 `presenter.Delete(myObject)`はOR `presenter.Delete()`が呼び出され、 `Delete` メソッド内でオブジェクトは `_view.SelectedRow` を呼び出して取得されます。 あなたはどのようにこのような状況に対処していますか?
回答: MVPパターンは、ロジック、ビュー、およびデータへのアクセスを分離することになっています。ですから、どこに行かなければならないのかを判断しようとするときに、あなたがしようとしていることに実際のビジネスロジックがあるかどうかを尋ねてください。 あなたのビジネス層にポップアップウィンドウを表示するロジックを持たせたいですか?おそらくそうではありません。それは単なる確認メッセージです。あなたのスタイルポップアップウィンドウを生成するヘルパークラスを用意したいかもしれませんが、これはPresenterレイヤーとは別のものです。