15

据我所知,前两个似乎没有什么不同。无论是称为控制器还是演示者,它似乎仍然具有相同的中介功能。

MVVM 似乎有点不同,因为控制器似乎更像是框架的一部分,例如与 XAML 绑定。

“悬崖笔记”对差异的解释是什么?

4

1 回答 1

15

不同之处在于来自模型层的数据如何在视图实例中结束。

  • 经典 MVC(以及 Model2 MVC)中,视图是活动结构。它从模型层请求信息。控制器只改变模型层和视图的状态。
  • MVP中,视图是被动的。相反,演示者从模型层请求信息并将其传递给视图。您可以在此处详细了解 MVP 模式。
  • MVVM中类似于 MVP,但视图模型必须在将信息传递给视图之前对其进行操作。

MVP 和 MVVM 的区别在于开发过程。在为已知模型层创建表示层时,您将使用 MVP 模式。

但是,如果您有一个预先存在的(或出于某种原因 - 不可更改的)用户界面和预先存在的(或不可更改的)模型层,则您将不得不使用 MVVM。你必须让它们一起工作。这就是视图模型发挥作用的地方。

于 2012-08-09T07:18:15.490 回答