转载至【http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html】html
MVCangularjs
全部的通讯都是单向的。mvc
M(Model)V(View)C(Controller)mvvm
View:视图:用户界面--是直接面向最终用户的“视图层”,是能与用户操做交互的界面。spa
Model:模型:数据保存--是核心的“数据层”,是程序要操做的数据或信息。双向绑定
Controller:控制器:业务逻辑--负责根据用户从“视图层”输入 的指令,选取“数据层”中的数据,而后对其进行相应操做后,产生最后结果。htm
MVPblog
MVP 模式将 Controller 更名为 Presenter,同时改变了通讯方向事件
M(Model)V(View)P(Presenter)部署
MVVM
MVVM 模式将 Presenter 更名为 ViewModel,基本上与 MVP 模式彻底一致。
M(Model)V(View)V(View)M(ViewModel)
惟一的区别是,它采用双向绑定(data-binding):View的变更,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。