ホームページ >よくある問題 >MVC、MVP、MVVMの違いは何ですか?

MVC、MVP、MVVMの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2019-04-16 10:27:3024286ブラウズ

違い: MVC は「Model-View-Controller」の略、MVP は「Model-View-Presenter」の略、MVVM は「Model-View-ViewModel」の略です。MVP と MVVM はどちらも MVC から派生したものです。の。 MVC では、View は Model から直接データを読み取りますが、MVP では、View は Model を直接使用しません。

MVC、MVP、MVVMの違いは何ですか?

MVC、MVP、MVVM は 3 つの一般的な設計パターンです。このうち、MVC はモデル・ビュー・コントローラー、MVP はモデル・ビュー・プレゼンター、MVVM はモデル・ビュー・ビュー・モデルの略であり、MVP と MVVM はすべて MVC から派生したものです。これらの設計パターンはすべて、一般に、テストと保守が簡単な、緩やかに構成されたアプリケーションの開発に役立ちます。

1. MVC (モデル-ビュー-コントローラー)

MVC は比較的直感的なアーキテクチャ パターンであり、元々はサーバーサイドの Web 開発に根ざしています。その後、私はクライアント側の Web 開発に徐々に慣れ、その複雑さと豊富さに対応できるようになりました。

MVC、MVP、MVVMの違いは何ですか?

#MVC パターンは、アプリケーションを 3 つの部分に分割します。

●モデル: モデル (アプリケーションのデータとデータに関連するビジネス ロジックをカプセル化するために使用されます)データの処理方法)

# ● View: ビュー(レンダリングされたページ)

##● Controller: コントローラー(MとVの間のコネクタ、アプリケーションのプロセスとページのビジネスロジックを制御するために使用されます)

MVC の特徴:

MVC モデルの特徴は、関心事の分離、つまりデータ モデルとビジネスおよびアプリケーションでの表示の論理的分離を実現することです。クライアント側 Web 開発では、コードがモデル (M データ、操作データ) とビュー (データを表示する V-HTML 要素) の間で分離され、疎結合されるため、クライアント アプリケーションの開発、保守、テストが容易になります。

ユーザー操作 -> ビュー (ユーザー入力操作の受信を担当) -> コントローラー (ビジネス ロジック処理) -> モデル (データの永続化) -> ビュー (結果をビューにフィードバック):

1. View はコントローラーに指示を送信します;

2. コントローラーがビジネス ロジックを完了した後、モデルの状態を変更する必要があります;

3. モデルは新しいデータをビューに送信します, ユーザーはフィードバックを受け取ります。

2. MVP (モデル-ビュー-プレゼンター)

MVP は、MVC のコントローラーをプレゼンター (プレゼンテーション) に置き換えます。目的は、View と Model の間の接続を完全に切断し、Presenter が View と Model の間の通信の方向を完全に分離するブリッジとして機能することです。


MVC、MVP、MVVMの違いは何ですか? MVP の機能:

● M、V、P 間の双方向通信。

#●View と Model の間に通信はなく、すべて Presenter を通じて配信されます。 Presenter は Model と View を完全に分離し、メインのプログラム ロジックは Presenter に実装されます。


#ビューは非常に薄く、ビジネス ロジックを展開しません。これは「パッシブ ビュー」 (パッシブ ビュー) と呼ばれ、主導権を持ちませんが、プレゼンターは非常に厚く、すべてのロジックが展開されます。そこに配備されています。

##●プレゼンターは特定のビューに直接関係しませんが、定義されたインターフェイスを通じて対話するため、ビューが変更されてもプレゼンターは変更されずに維持され、再利用できます。それだけでなく、さまざまなユーザー操作をシミュレートしてプレゼンターをテストするためのテスト ビューを作成することもできるため、自動テスト ツールを使用する必要がなくなります。

3. MVVM (Model-View-ViewModel)

MVVM モードでは Presenter の名前が ViewModel に変更されますが、これは基本的に次と同じです。 MVP モード 完全に一貫性があります。 MVP が MVC をさらに改良したものであるとすれば、MVVM は考え方を完全に変えたものです。 「データ モデル データの双方向バインディング」という考え方を核としているため、View と Model の間に接続はありません。対話は ViewModel を介して行われ、Model と ViewModel 間の対話は双方向であるため、ビューのデータの変更は同時にデータ ソースも変更され、データ ソース データの変更はすぐにビューに反映されます。

概要: MVC、MVP、MVVMの違いは何ですか?

MVC では、View はコントローラー経由ではなくモデルから直接データを読み取ります。ビューとコントローラーの間には多対 1 の関係があります。 MVP では、View は Model を直接使用しません。それらの間の通信は Presenter (MVC のコントローラー) を通じて実行されます。すべての対話は Presenter 内で発生し、View と Presenter の間は 1 対 1 の関係になります。

MVVM モードは基本的に MVP モードと同じです。唯一の違いは、MVVM が双方向バインディング (データ バインディング) を使用することです。View での変更は自動的に ViewModel に反映され、その逆も同様です。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がMVC、MVP、MVVMの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。