web-dev-qa-db-ja.com

MVC / MVP / MVVM一体何ですか?

私は最近、.Net WPFプロジェクトに取り組み、MVPパターンを初めて使用する小売POSシステムを構築しました。アプローチの変化に頭を悩ませるのに少し時間がかかりましたが、一度やってみるとコンセプトが揺らいでいると思いました!

私の質問はこれです:MVC、MVP、MVVMの違いは何ですか?明確な区別がある場合、あるパターンを別のパターンの上でいつ使用すべきかについてのガイドラインはありますか?

誰かがこれについてのガイダンスを提供することができるか、または違いを説明する記事を指すことができれば、私はそれを非常に感謝します。

41
Steve

Microsoftのアプリケーションアーキテクチャガイドでは、MVCとMVPについて説明し、2つの違いについて説明しています。

http://www.codeplex.com/AppArch

このMSDNの記事では、MVVMとその進化について説明しています。

http://msdn.Microsoft.com/en-us/magazine/dd419663.aspx

17
JustABitOfCode

特定のフレームワークに実装されている特定のパターンを見て、パターン間の違いを理解するのは難しい場合があります。このmsdnの記事 WPF MVVM は、一般的なアプローチとしてパターンを説明するMartinFowlersの元の記事を参照しています。

2004年に、Martin Fowlerは、Presentation Model(PM)という名前のパターンに関する記事を公開しました[...] MVVMは、より一般的なPMパターン、 WPFおよびSilverlightプラットフォーム。

したがって、さまざまなパターンを理解するには、MartinFowlerによるさまざまなアプローチの説明を確認すると便利です。彼の パッシブビュー パターンはMVPアプローチです。彼の Supervising Controller パターンはMVCアプローチです。彼の プレゼンテーションモデル パターンはMVVMアプローチです。この 古い記事 はそのようなパターンの進化について取り上げます。

また、さまざまな言語での実装を確認することも役立つ場合があります。記事 ZKを使用したイベント駆動型GUIパターンの実装Java AJAXフレームワーク )は、上記の3つのMartinFowlerパターンを対比しています。 modern Javaフレームワーク。WPFとは言語やフレームワークが異なりますが、パターンを実装して別の言語で実行するよりも、パターンを確認する方が役立つ場合があります。

3
simbo1905