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

pax*_*blo 15 model-view-controller mvp design-patterns mvvm

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

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

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

ter*_*ško 14

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

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

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

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