2011-01-19 6 views
3

Webforms MVP実装やその他のほとんどの例では、Presenterは通常Viewイベントにハンドラをアタッチしていることに気付きました。なぜViewsはプレゼンターのメソッドを直接呼び出すことができないのですか?イベントにハンドラをアタッチし、特殊なパラメータのためにEventArgsを定義し、ビュー側でイベントがnullであるかどうかを調べるタスク全体がメソッドを呼び出すよりもずっと面倒なように思えます。ほとんどのASP.NET MVP実装でPresenterメソッドを呼び出すのではなく、PresenterがViewイベントにアタッチするのはなぜですか?

答えて

2

確かにそうすることができますが、私はそれが最良の中間地であることがわかります。あなたが描写しているのは、Observing Presenterスタイルと呼ばれることです。これにより、プレゼンターからのビューを完全に切り離すことができ、プレゼンター内での変更の影響を受けにくくなります。しかし、それはまた、テストの複雑さをもたらし、それがMVPを使用して始める理由です。私はこのスタイルを全く気にしません。非常に大規模なプロジェクトでは、カプセル化プレゼンタースタイルを使用しています。ここでは、ViewにはIoCコンテナを介して注入されたPresenterへの参照があり、Presenter上のメソッドを呼び出すだけです。理解しやすく、デバッグしやすく、テストが簡単です。

+0

http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-netにお答えください。 – Lijo

関連する問題