MVVM和MVA之间的区别(模型 - 视图 - 适配器)

时间:2016-09-27 05:14:44

标签: design-patterns mvvm model-view-adapter

MVVM和MVA(模型 - 视图 - 适配器)之间有什么区别?

只要两种模式:

  1. VM和适配器在View和Model之间进行调解。
  2. 可能有多个虚拟机和适配器参与了这些模式的相同模型。
  3. 模型直接与VM和Adapter进行交互。
  4. 我唯一想到的是,在MVVM中,VM不会收到来自Model的任何通知,但在MVA中,适配器会接收来自Model的通知!

    那么如何解释这些模式的差异呢?

1 个答案:

答案 0 :(得分:0)

在此article中,Martin Fowler概述了Presentation Model模式,其中MVVM可以说是衍生模式。

我对MVA变体并不熟悉,但假设它具有与MVP相似的品质和目标,使其具有可比性。

Presentation Model模式与MVP的其他变体之间的主要区别在下面的引文中突出显示。

  

Presentation Model是一种从视图中提取演示行为的模式。因此,它是Supervising Controller和Passive View的替代品。它允许您在没有UI的情况下进行测试,支持某种形式的多视图以及分离关注点,这可以使开发用户界面变得更加容易。

     

与Passive View和Supervising Controller相比,Presentation Model允许您编写完全独立于用于显示的视图的逻辑。您也不需要依赖视图来存储状态。缺点是您需要在表示模型和视图之间使用同步机制。这种同步可以非常简单,但它是必需的。