最近、MVP についての記事を読みました。これは、MVP モデルとは何かを紹介するものです。
しかし、MVC と MVP の違いは実際には明確ではありません。 読んでみると、「MVPはMVCの仕様を厳しくしただけだ」という気がします。
MVP のプレゼンターはどのような役割を果たしますか?
MVP についていくつかの情報を調べました。 MVCのControllerに比べて、PresenterにはModelとViewを完全に分離する機能が追加されていると言われています。しかし、実際には、私の概念 (日常のアプリケーションにおける) では、MVC のモデルとビューを分離することができます。通常の開発では、モデルで提供されたデータをコントローラーで処理し、それをページにレンダリングします。つまり、MVC は多くの場合、実際に V と M を分離できます。では、MVPモデルを提案する目的やポイントは何でしょうか?
ご意見をお聞かせいただければ幸いです、ありがとうございます!
私は、悪い質問はない、悪い答えがあるだけであると固く信じています。
最初はコマンドラインしかありませんでした。
ソフトウェアエンジニアの魂はシェルの上で動いています。
ゼロックスは「GUI が必要だ」と言っています...
1.デスクトップソフトウェア用のMVC
Smalltalk に感謝します。 GUIのおかげです。
2. B/S アーキテクチャーを使用した MVC
その後、インターネットの台頭により、プログラマーはサーバー上でプログラムを実行するようになりました。この時点で、GUI は変わりました。すべてのインターフェイス (ビュー層) の現実はブラウザ (HTML) に置き換えられます。
この時点で、MVC が BS アーキテクチャに持ち込まれました。ありがとう太陽。ストラットさん、ありがとう。
3. フロントエンド MVP
その後、ブラウザはますます強力になり、多くのビジネスがブラウザで実行されるようになりました。
そこで、プログラマは MVC を View 層に導入しました。ただし、HTML+CSS+JS を表示レイヤーとして使用することは、従来のデスクトップ GUI とは大きく異なります。 そこで、js言語の特性を最大限に活かすためにMVPが登場しました。
アーキテクチャプレゼンテーションパターンMVP(SC)、MVP(PV)、PM、MVVM、MVCの比較
[翻訳] MVP(SC)、MVP(PV)、PM、MVVM、MVC パフォーマンス モデル アーキテクチャの比較
建築の進化:
MVC モード:
ビュー <-> コントローラー <-> コントローラーはルーティングだけでなく、コントローラー内の機能を柔軟に構成することもできます。発達。開発中は MVP ほど直感的ではありませんが、焦点が絞られていない MVP の方が簡潔です。
MVP モード:
プレゼンター (コントローラー <-> イベント) <-> モデルを表示するため、開発者はルーティングとコントロールについて心配する必要がありません。メッセージのレイヤーを各メッセージによってトリガーされるイベントに配置し、イベント内でビジネス操作を実行します。これにより、開発がよりシンプルかつ直感的になりますが、コントローラー層の操作の柔軟性が犠牲になります。
MVVM モード:
View <-> ViewModel <-> ViewModel は MVP のプレゼンター機能として機能するだけでなく、View をアクティブに更新することもできます。 View によってトリガーされる単一のバックグラウンド更新の代わりに。 MVVMはMVPの拡張版とも言えます