3

言及された2つのパターンの違いについて疑問に思っています。プレゼンテーション モデル パターンに同期コードが必要であり、そのコードがプレゼンテーション モデル自体にあると考えると、パターンは非常に似ていると思います。

どちらもイベントをプレゼンテーション モデル / プレゼンターに委任します。プレゼンテーション モデルとプレゼンターはドメイン モデルを指揮し、ドメイン モデルも観察します。変更が発生すると、両方ともビューと同期します (プレゼンテーション モデルの同期コードはプレゼンテーション モデルにあるため)。

私の意見では、違いは、プレゼンテーション モデルがビューの抽象的な形式であることです。ビューの状態と動作を記述します。そのため、すべてのビュー ステート情報のプロパティがあります。この情報は、同期コードを介して同期されます。受動的な見方では、発表者は必然的に抽象的な形の見方ではありません。そのため、プレゼンターは必ずしもビュー ステートを表すプロパティを持っているわけではありません。そのため、プレゼンターは状態を「同期」しません (コントロールとプレゼンター自体の属性)。代わりに、(変更時に) ドメイン データをコントロールに「コピー」するだけです。したがって、違いは本質的にビューの抽象化です。そのプレゼンテーション モデルは、パッシブ ビューではプレゼンターがドメイン データのデータ マッパーと見なされる可能性があるときに提供します。

これまでのところ大丈夫ですか、それとも何か重要なことを見逃していますか?

ありがとう、よろしくパトリック

4

1 に答える 1

2

私の理解では、パッシブ ビューは MVP のバリアントであり、プレゼンテーション モデルは別のパターンです。

強調したように、Presentation Model にはビューの抽象表現があり、後で MVVM で ViewModel と呼ばれます。MVP にはビューのステートフルな表現がなく、プレゼンターはそれに応じてビューを呼び出します。パッシブ ビューとは、ビューの呼び出しが一般にドメインの概念にとらわれないことを意味するため、ほとんどがプリミティブ型です。一方、Supervising Controller バリアントでは、ビューが解釈できるドメイン コンセプトをビューに渡すことができます。

私が言ったように、これは私の理解です。訂正されてうれしいです。

于 2013-08-30T14:32:19.303 に答える