3

我想知道这两种模式之间的区别。当您考虑时,您需要演示模型模式中的同步代码并且该代码在演示模型本身中,那么我认为这些模式非常相似。

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

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

到目前为止还可以吗?还是我错过了一些重要的事情?

谢谢和最好的问候帕特里克

4

1 回答 1

2

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

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

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

于 2013-08-30T14:32:19.303 回答