1

私はプレゼンテーション モデル パターンを学習しようとしていますが、プレゼンテーション モデルと MVP - パッシブ ビューの違いについて混乱してしまいました。具体的には、プレゼンテーション モデルがビューの代わりに同期を行う場合です。この質問は、この件に関する以前の質問の延長です。

Martin Fowler は彼のArticleで、Presentation Model が同期を行う可能性を提供しています。

ビューを参照するプレゼンテーション モデルは、通常、同期コードをプレゼンテーション モデルに保持します。結果のビューは非常にばかげています。ビューには、動的であり、ユーザーのアクションに応じてイベントを発生させる状態のセッターが含まれています。ビューは、プレゼンテーション モデルをテストするときに簡単にスタブ化できるインターフェイスを実装します。プレゼンテーション モデルはビューを監視し、適切な状態を変更してビュー全体をリロードすることでイベントに応答します。その結果、同期コードは、実際の UI クラスを必要とせずに簡単にテストできます。

プレゼンテーション モデルが同期している場合、MVP(Passive View) との違いがよくわかりません。パッシブ ビューに関する彼の記事では、同期を使用してビューを更新する例を示しています。

では、プレゼンテーション モデルがビューを参照する (および同期する) プレゼンテーション モデル パターンは、MVP (パッシブ ビュー) と同じではないでしょうか?

4

1 に答える 1

-1

Model-View-Presenter は、UI レベルで動作とロジックの構造を定義するアーキテクチャ パターンです。MVP は、バックエンド サービスやビジネス レイヤーとの対話などのプレゼンテーションのロジックを、ボタンやインターフェイス コンポーネントを表示するメカニズムから分離します。

パッシブ ビューは、Model-View-Presenter パターンのサブセットです。 基本モデル ビュー プレゼンター図

外側から見ると、パッシブ ビューのアーキテクチャは次のようになります。

UI – The User Interface reflects what is going on beneath it by implementing one or more View interfaces
Presenter – The Presenter receives interactions from the UI or Model and updates the Views it is attached to
Model – The model is a facade or black box in our diagram, behind which is a business logic layer and data layer

フラット アーキテクチャでは、インターフェイスからデータを収集し、ビジネスとデータの検証を行ってから、ストアド プロシージャまたはインライン SQL を使用してデータベースに直接保存します。データ アクセス レイヤー (またはエンティティ フレームワークのようなデータ モデル) を定義することで、アプリケーションは、アプリケーションにとって意味があり、一貫して格納および取得される、まとまりのある定義済みオブジェクトを操作できるようになります。ビジネス ロジック層を定義することで、ビジネスと一貫性があり、アプリケーション内で一貫した方法で、アプリケーション内のエンティティを操作するビジネス ルールを一元化できるため、ビジネス フローを変更するときに発生するリスクを最小限に抑えることができます。

サンプル アプリケーションには、いくつかの機能要件と非機能要件があります。

Functional – Display product number, name, list price, and available quantity in tabular format
Functional – Provide a basic search input and button to search product names
Non-Functional – Implement an M-V-P pattern – Obviously the purpose of this whole exercise
Non-Functional – Use a simple model stack that can be easily replaced with a Service-Oriented one at a later time
Non-Functional – Build with the idea that we will later create a Silverlight or WPF front-end
Non-Functional – Make pretty pictures for article
于 2016-04-03T03:36:35.823 に答える