この記事では、Martin Fowler がPresentation Model
パターンの概要を説明していますが、これMVVM
は間違いなく派生物です。
私はそのMVA
亜種にあまり詳しくありませんが、類似した性質と目的を持っていると仮定してMVP
、比較できるようにします。
Presentation Model
このパターンと の他のバリアントとの主な違いは、MVP
以下の引用で強調されています。
プレゼンテーション モデルは、ビューからプレゼンテーションの動作を引き出すパターンです。そのため、Supervising Controller と Passive View の代わりになります。これは、UI なしでテストできるようにしたり、何らかの形の複数ビューをサポートしたり、ユーザー インターフェイスの開発を容易にする懸念事項を分離したりするのに役立ちます。
パッシブ ビューや監視コントローラーと比較して、プレゼンテーション モデルでは、表示に使用されるビューから完全に独立したロジックを記述できます。また、状態を保存するためにビューに依存する必要もありません。欠点は、プレゼンテーション モデルとビューの間の同期メカニズムが必要なことです。この同期は非常に簡単ですが、必須です。