MVVM 和 MVA(模型-视图-适配器)有什么区别?
只要在两种模式中:
- VM 和适配器在 View 和 Model 之间进行调解。
- 对于同一模型,可能有多个 VM 和 Adapter 参与了这些模式。
- 该模型直接与 VM 和 Adapter 交互。
我唯一想到的是,在 MVVM 中,VM 不会收到来自 Model 的任何通知,但在 MVA 中,适配器会收到来自 Model 的通知!
那么如何解释这些模式的差异呢?
MVVM 和 MVA(模型-视图-适配器)有什么区别?
只要在两种模式中:
我唯一想到的是,在 MVVM 中,VM 不会收到来自 Model 的任何通知,但在 MVA 中,适配器会收到来自 Model 的通知!
那么如何解释这些模式的差异呢?
在这篇文章中,Martin Fowler 概述了这种Presentation Model
模式,MVVM
可以说是一种衍生模式。
我对这个MVA
变体不太熟悉,但假设它具有相似的品质和目标MVP
,使其具有可比性。
该Presentation Model
模式与其他变体之间的主要区别在MVP
下面的引用中突出显示。
表示模型是一种从视图中提取表示行为的模式。因此,它是监督控制器和被动视图的替代方案。它对于允许您在没有 UI 的情况下进行测试、支持某种形式的多视图和关注点分离非常有用,这可能会使开发用户界面变得更加容易。
与被动视图和监督控制器相比,Presentation Model 允许您编写完全独立于用于显示的视图的逻辑。您也不需要依赖视图来存储状态。缺点是您需要在表示模型和视图之间建立同步机制。这种同步可能非常简单,但它是必需的。