我想知道上述两种模式之间的区别。当您考虑到您需要在表示模型模式中同步代码并且该代码位于表示模型本身中时,那么我认为这些模式非常相似。
两者都将事件委托给演示模型/演示者。演示模型和演示者命令域模型,并且也观察域模型。当发生更改时,它们都与视图同步(因为表示模型中的同步代码位于表示模型中)。
在我看来,不同之处在于,表示模型是视图的抽象形式。它描述了视图的状态和行为。所以它具有所有视图状态信息的属性。并且此信息通过同步代码同步。
在被动视图中,呈现者不一定被视为视图的抽象形式。因此演示者不一定具有表示视图状态的属性。因此演示者不会“同步”状态(控件和演示者本身的属性)。相反,他只是将域数据(在更改时)“复制”到控件。
因此,本质上的区别在于表示模型提供的视图的抽象,而在被动视图中,表示者可以被视为领域数据的数据映射器。
到目前为止还可以吗?还是我错过了一些重要的事情?
谢谢并致以最诚挚的问候
帕特里克
我的理解是被动视图是 MVP 的变体,而演示模型是一个单独的模式。
正如您所强调的,表示模型具有视图的抽象表示,后来在 MVVM 中称为 ViewModel。 MVP 没有视图的有状态表示,演示者相应地调用视图。被动视图意味着视图调用通常不知道任何领域概念,因此很大程度上是原始类型。而监督控制器变体允许视图传递它可以解释的域概念。
正如我所说,这只是我的理解。我很高兴得到纠正。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)