演示模型与被动视图

时间:2013-08-30 13:24:36

标签: design-patterns user-interface architecture mvp presentation-model

我想知道两种提到的模式之间的区别。当你考虑到,你需要在表示模型模式中使用同步代码并且代码在表示模型本身时,那么我认为模式非常相似。

将事件委托给演示模型/演示者。表示模型和演示者命令域模型,并且还要观察域模型。在发生更改时,它们都与视图同步(因为演示模型中的同步代码在演示模型中)。

在我看来,不同之处在于,表示模型是视图的抽象形式。它描述了视图的状态和行为。所以它具有所有视图状态信息的属性。并且此信息通过同步代码同步。 在被动视图中,演示者不会被视为视图的抽象形式。因此,演示者不具有表示视图状态的属性。因此,演示者不会“同步”状态(控件和演示者本身的属性)。相反,他只是简单地“复制”(在更改时)域数据到控件。 所以差异本质上是视图的抽象,表示模型提供,而在被动视图中,演示者可以被视为域数据的数据映射器。

到目前为止还不错,还是我错过了重要的事情?

谢谢和最诚挚的问候 帕特里克

1 个答案:

答案 0 :(得分:1)

我的理解是被动视图是MVP的变体,而演示模型是一个单独的模式。

正如您所强调的那样,Presentation Model有一个视图的抽象表示,后来在MVVM中称为ViewModel。 MVP没有视图的有状态表示,演示者相应地调用视图。被动视图意味着视图调用通常与任何域概念无关,因此很大程度上是原始类型。而监督控制器变体允许视图传递它可以解释的域概念。

正如我所说,这只是我的理解。我很高兴得到纠正。