モデルビュープレゼンターパターンとは何かをできるだけ簡単に説明してください。 Model View Controllerとの違いは何ですか?どちらが最適ですか、それともどの目的ですか?
Martin Fowlerには、UIデザインパターンに関するページがあり、MVC、MVP、その他のパターンを定義してから説明しています。
http://martinfowler.com/eaaDev/uiArchs.html
違いを要約すると、MVCのコントローラーはUIをより細かく制御し、イベントを処理しますが、MVPのプレゼンターはより受動的で、UIを介して情報を表示するだけです。
一般に大きな違いはなく、多くの場合、それらの間の線はぼやけています。
Model View PresenterとModel View Controllerは、どちらも同じ「懸念の分離」問題を解決しようとします。
主な違いは、モデルビューコントローラー(MVC)が、ビューと何らかのモデルの間のカップリングで実装されることが多いことです。これにより、特定のビューは特定のオブジェクト(モデル)の視覚化を提供することを特に目的としています。
モデルビュープレゼンターパターンでは、通常、プレゼンターがモデルの操作を担当し、何らかの視覚化を形成するために必要な情報を決定します。
この図では、矢印は依存関係を表しています。
通常、ASP.NET MVCフレームワークについて議論するときにこのパターンの議論が聞こえ、MVPパターンとASP.NET WebFormsでの実装に関する情報に出くわします。私の経験では、WebForms自体がMVPパターン化フレームワークであると信じられていることがよくあります-これは真実ではありません。ただし、WebFormsを使用すると、MVPパターンの実装が非常に簡単になります。これに最適なリソースは、Patterns and PracticesチームのWeb Client Software Factoryを調査することです。
CodePlexサイト: http://www.codeplex.com/websf
トピックを網羅した素晴らしいスクリーンキャスト: http://www.pnpguidance.net/Screencast/MVPBundleScreencastWCSFModelViewPresenterDesignPattern.aspx
ファウラーは、MVPを2つのパターンに分割します。監督者プレゼンターとパッシブビューです。
Aviad Ezraには、このトピックに関する良い記事があります http://aviadezra.blogspot.com/2008/10/model-view-presenter-design-pattern.html 。
デスクトップではMVPの方が優れていると思います。デスクトップでは、Modelにイベントを発生させる機能があるため、MVCはWebアプリ用です