Webforms MVP実装やその他のほとんどの例では、Presenterは通常Viewイベントにハンドラをアタッチしていることに気付きました。なぜViewsはプレゼンターのメソッドを直接呼び出すことができないのですか?イベントにハンドラをアタッチし、特殊なパラメータのためにEventArgsを定義し、ビュー側でイベントがnullであるかどうかを調べるタスク全体がメソッドを呼び出すよりもずっと面倒なように思えます。ほとんどのASP.NET MVP実装でPresenterメソッドを呼び出すのではなく、PresenterがViewイベントにアタッチするのはなぜですか?
3
A
答えて
2
確かにそうすることができますが、私はそれが最良の中間地であることがわかります。あなたが描写しているのは、Observing Presenterスタイルと呼ばれることです。これにより、プレゼンターからのビューを完全に切り離すことができ、プレゼンター内での変更の影響を受けにくくなります。しかし、それはまた、テストの複雑さをもたらし、それがMVPを使用して始める理由です。私はこのスタイルを全く気にしません。非常に大規模なプロジェクトでは、カプセル化プレゼンタースタイルを使用しています。ここでは、ViewにはIoCコンテナを介して注入されたPresenterへの参照があり、Presenter上のメソッドを呼び出すだけです。理解しやすく、デバッグしやすく、テストが簡単です。
関連する問題
- 1. (MVPパターン)エラーメッセージをPresenterからViewに転送する方法は?
- 2. Model-View-PresenterとModel-View-Adapterの違いは何ですか?
- 3. ASP.net Model View Presenterは時間の価値がありますか?
- 4. Model-View-PresenterのプレゼンターはUI以外のアクション/ロジックを実行できますか?
- 5. 1人の発表者がModel-View-Presenterアプリケーション内の別のプレゼンターのメソッドを呼び出すことは、いいえですか?
- 6. なぜSystem.Arrayのほとんどのメソッドは静的ですか?
- 7. メソッドが呼び出されないのはなぜですか?
- 8. MFCアプリケーションでModel-View-Presenterパターンを使用する
- 9. すべてのPresenterクラスで "onPlaceRequest"をオーバーライドする必要があるのはなぜですか?
- 10. なぜデフォルト==実装は等価を呼び出さないのですか?
- 11. ASP.NETブラウザを閉じるときにsession_endイベントが呼び出されないのはなぜですか?
- 12. なぜnewObjectメソッドが呼び出されないのですか?
- 13. MVP - Presenterはデータレイヤーからデータを読み込み、モデルに変換しますか?
- 14. なぜこのメソッドを呼び出せないのですか?
- 15. "printperson()"メソッドがサブクラスのプライベートメソッドを呼び出さないのはなぜですか?
- 16. ほとんどのシェーダがmat3x4ではなくmat4を使用するのはなぜですか?
- 17. アンドロイド:offsetTopandBottom()メソッドがonDraw()を呼び出さないのはなぜですか?
- 18. 私のC#メソッドが呼び出されないのはなぜですか?
- 19. 出力時間がそれほど短くないのはなぜですか?
- 20. LinearLayout.addView(view view)メソッド呼び出しでIllegalStateExceptionが発生する
- 21. WebService as Presenter
- 22. なぜ、メソッド#アーリティが呼び出されたのですか?
- 23. DefaultAnnotationHandlerMappingが呼び出されないのはなぜですか?
- 24. InvokeHandlerのinvoke()メソッド内でproxy.getClass()を呼び出すのはなぜですか?
- 25. スタブ付きメソッドが呼び出されないのはなぜですか?
- 26. 特定のObjectメソッドをデフォルトメソッドから呼び出すことができないのはなぜですか?
- 27. オーバーロードされたメソッドが呼び出されないのはなぜですか?
- 28. paintComponent()メソッドが呼び出されないのはなぜですか?
- 29. なぜdoesNotRecognizeSelector:メソッドを呼び出すのですか?
- 30. COMメソッド呼び出しがRPC_S_INTERNAL_ERRORを返すのはなぜですか?
http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-netにお答えください。 – Lijo