1

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

只要在两种模式中:

  1. VM 和适配器在 View 和 Model 之间进行调解。
  2. 对于同一模型,可能有多个 VM 和 Adapter 参与了这些模式。
  3. 该模型直接与 VM 和 Adapter 交互。

我唯一想到的是,在 MVVM 中,VM 不会收到来自 Model 的任何通知,但在 MVA 中,适配器会收到来自 Model 的通知!

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

4

1 回答 1

0

在这篇文章中,Martin Fowler 概述了这种Presentation Model模式,MVVM可以说是一种衍生模式。

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

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

表示模型是一种从视图中提取表示行为的模式。因此,它是监督控制器和被动视图的替代方案。它对于允许您在没有 UI 的情况下进行测试、支持某种形式的多视图和关注点分离非常有用,这可能会使开发用户界面变得更加容易。

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

于 2016-09-27T12:31:13.230 回答