MVC,MVP和MVVM之间有什么区别?

时间:2012-08-09 06:03:11

标签: model-view-controller design-patterns mvvm mvp

从我可以收集的信息来看,前两个看起来并没有那么不同。无论它被称为控制器还是演示者,它似乎仍具有相同的中介功能。

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

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

1 个答案:

答案 0 :(得分:14)

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

  • 经典MVC (以及在Model2 MVC中)视图中是活动结构。它从模型层请求信息。 Controller 仅更改模型层和视图的状态。
  • MVP 中,视图是被动的。而是 presenter 从模型层请求信息并将其传递给视图。您可以更多地了解MVP模式here
  • MVVM 中的
  • 与MVP类似,但 viewmodel 必须在将信息传递给视图之前对其进行操作。

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

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