15

私は多くのリンク/ブログを経験してきました。それらのほとんどは、素人の言葉で明確にコミュニケーションできず、MVP、MVVM、MVC の技術的な違いもわかりません。私はすべてのキャラクターが何を表しているかを知っており、MVP にも取り組みました。しかし、誰かが私に同じ質問をしたとしても、本当に理解できません。Presenter の代わりに MvP でコントローラーを使用できないのはなぜですか? そして、プレゼンターではなくMVVMでモデルを表示する理由と、それはどのように違うのですか? 「MVCはASP.NET用に最適化されており、VSにもテンプレートがあり、MVPはwinform用に最適化されており、MVVMは組み込みのバインディング機能などをサポートしているため、SL / WPF用に最適化されています」と一言で言えます。しかし、それは私が理解しなければならないことではなく、詳細で深いものだと感じています。詳細な説明と使用法、およびいずれかを選択する実際の理由とともに、これに光を当てることができますか。皆さん、ありがとうございました...

4

2 に答える 2

12

完全な答えを提供することはできませんが、これらのパターンのいくつかを学ぶのに苦労しましたが、主な違いのいくつかについてのアイデアを提供できるかもしれません.

最初に MVVM を学び、次に MVC を学びました。私は MVP とそれが理論的にどのように機能するかを認識していますが、実際に MVP を使用してアプリケーションを構築したことはありません。

設計パターン間の最大の違いは、アプリケーション フローとロジックを制御するのは誰かのようです。

MVVMでは、コード クラス ( ViewModels) はアプリケーションですViewsが、アプリケーション コードの上に位置し、ユーザーがそれを操作できるようにする非常にユーザー フレンドリーなインターフェイスです。これは、アプリケーションアプリケーションであり、アプリケーション フローからビジネス ロジックまでのすべてを担当するViewModelsため、巨大な仕事をすることを意味します。

MVCを使用すると、あなたViewsはあなたのアプリケーションであり、あなたControllerはアプリケーション フローを処理します。アプリケーション ロジックは通常、MVCViewModelsの一部と見なされる にありますM(補足: MVC のレイヤーには MVVM のレイヤーよりも多くの機能が含まれているため、MVC のレイヤーは MVVM のレイヤーMと同じと見なすことはできません)。ユーザーは画面 ( ) を受け取り、それを操作して に何かを送信します。 はデータを誰が処理するかを決定し、新しいをユーザーに返します。MMMViewControllerControllerView

私はMVPを使用したことはありませんが、それに対する私の理解は MVC に非常に似ていましたが、クライアント/サーバー アプリケーションではなくデスクトップ アプリケーション向けに最適化されていました。はViews実際のアプリケーションであり、Presenterはアプリケーション イベントとビジネス ロジックを処理します。

于 2012-07-09T18:54:09.997 に答える
1

MVC では Model View Controller が三角形としてリンクされています MVP では Model View Presenter がリンクされています 基本的に MVC と MVP は非常に似ていますが、MS プラグインを作成して分離するために既にビルドされているため、MVC を使用する方が簡単です利点を提供する MVC MVP を使用すると、アプリは一般的な ASP.NET アプリのように見えます。つまり、Razor がなく、ビューに .cshtml がなく、自分で構造を処理する必要があります。MVVM は通常、Silverlight/WPF で使用され、それらの技術者にとっては最良の選択です。MVVM と MVC の考え方はよく似ています。ノックアウトを使用する場合は、Web アプリのクライアント側に MVVM を適用することもできます。

于 2013-10-07T12:17:09.797 に答える