ホームページ  >  記事  >  バックエンド開発  >  MVC、MVP、MVVMの違いと使い方を紹介

MVC、MVP、MVVMの違いと使い方を紹介

巴扎黑
巴扎黑オリジナル
2017-08-06 10:25:391995ブラウズ

MVC、MVP、MVVMとは何ですか? MVC (Model-View-Controller) は最も一般的なソフトウェア アーキテクチャの 1 つであり、業界で広く使用されています。それ自体を理解するのは簡単ですが、派生した MVP および MVVM アーキテクチャとどのように異なるかを説明するのはそれほど簡単ではありません。

1. MVC

MVCパターンは、ソフトウェアが3つの部分に分割できることを意味します。

ビュー: ユーザーインターフェイス。

Controller(コントローラー):ビジネスロジック

Model(モデル):データストレージ

各部間の通信方法は以下の通りです。

1. ビューはコントローラーに命令を送信します

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

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

一方通行。

2. インタラクティブモード

ユーザーの指示を受け付ける場合、MVCは2つの方法に分けられます。 1 つは、ビューを通じて指示を受け取り、それをコントローラーに渡すことです。

もう 1 つは、コントローラーを通じて直接指示を受け取ることです。

3. 例: Backbone

実際のプロジェクトでは、Backbone.js を例として、より柔軟なアプローチが採用されることがよくあります。

1. ユーザーはビューに指示 (DOM イベント) を送信し、ビューはモデルに状態を変更するよう直接リクエストします。

2. ユーザーはコントローラーに直接指示を送信することもでき (URL を変更すると hashChange イベントがトリガーされます)、コントローラーはそれをビューに送信します。

3. コントローラーは非常に薄く、ルーティングの役割のみを果たしますが、View は非常に厚く、ビジネス ロジックは View に展開されます。したがって、Backbone は単にコントローラーをキャンセルし、ルーターのみを保持しました。

4. MVP

MVP モードでは、コントローラーの名前がプレゼンターに変更され、通信の方向が変更されます。

1. さまざまな部分間の通信は双方向です。

2. ビューとモデルは接続されておらず、両方ともプレゼンターを介して渡されます。

3. ビューは非常に薄く、ビジネス ロジックを展開しません。つまり、主導権を持たないのに対し、プレゼンターは非常に厚く、すべてのロジックがそこに展開されます。

5. MVVM

MVVM モードでは Presenter の名前が ViewModel に変更されます。これは基本的に MVP モードと同じです。

唯一の違いは、双方向バインディング (データバインディング) を使用することです。View での変更は自動的に ViewModel に反映され、その逆も同様です。 angular と ember は両方ともこのパターンを採用しています。

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

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