平时大家都说MVC、MVP、MVVM设计模式,但它们有什么区别呢?
1. MVC(Model-View-Controller)
MVC模式的意思是,软件可以分为三个部分。
- 视图(view):用户界面
- 控制器(controller): 业务逻辑
- 模型(Model): 数据保存
各部分之间的通信方式如下:
- view 传输指令到 controller
- Controller 完成业务逻辑之后,要求Model改变状态。
- Model将新的数据发送到View,用户得到反馈
二、MVP(Model-View-Presenter)
- 各部分之间的通信都是双向的。
- View和Model不发生关系,都是通过Presenter。
- 逻辑层都布在Presenter上。
3.MVVM(Model-View-ViewModel)
MVVM模式将 Presenter 改名为 ViewModel,基本上与MVC模式完全一致。
唯一区别的是,它采用的是数据双向绑定,view的变动,自动反应在ViewModel上,反之亦然。就是说数据和模型互相绑定。、
MVVM框架有Angularjs、Ember。
参考教程:
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
http://www.cnblogs.com/guwei4037/p/5591183.html