MVC ,MVP,MVVM 的区别
2018-01-03 本文已影响266人
Ludiwgbet
一句话概括:
MVC(Model-View-Controller), 模块-视图-控制器, 由 MVC 衍生出的 MVP, MVVM。
1. MVC
MVC 的意思是, 软件可以分为三个部分。

视图(View):用户界面.
控制器(controller):业务逻辑
模型(Model): 数据保存
1. View 传送指令 到 Controller
2. Controller 完成业务逻辑后, 要求 Model 改变状态。
3. Model 将新的数据发送到 View. 用户得到反馈
实际项目中 往往会采用更灵活的方法。
2. MVP
MVP 模式将Controller 改名为 Presenter, 同时改变了通信方向。

1. 各部分之间的通信, 都是双向的。
2. View 与 Model 不发生联系, 都通过 Presenter 传递。
3. View 非常薄, 不部署任何业务逻辑, 称为 被动视图,Presenter 非常厚, 所有逻辑都部署在那里。
3. MVVM
MVVM 模式, 将Presenter 改名为 ViewModel.

唯一的区别是, 它采用双向数据绑定,(data-binding) : View 的变动。自动反映在 ViewModel, 反之亦然。 Angular 和 Ember 都采用这种模式