MVVM:Model-View-ViewModel
是MVP(Model-View-Presenter)模式与WPF结合的应用方式时 发展演变过来的一种新型架构框架。使用的是数据绑定基础架构,View绑定到ViewModel,然后执行一些命令在向它请求一个动作。而反过来,ViewModel跟Model通讯,告诉它更新来响应UI。
MVC
用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。
view:视图、controller:业务逻辑、model:数据保存;
MVP(Model-View-Presenter)
MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。
.NET程序员熟知的ASP.NET webform、winform基于事件驱动的开发技术就是使用的MVP模式。控件组成的页面充当View,实体数据库操作充当Model,而View和Model之间的控件数据绑定操作则属于Presenter。控件事件的处理可以通过自定义的IView接口实现,而View和IView都将对Presenter负责。
MVVM
MV-CM,思想的完全变革。
它是将“数据模型数据双向绑定”的思想作为核心(View的变动,自动反映在 viewmodel,反之亦然),在View和Model之间没有联系,通过viewmodel进行交互,而且Model和viewmodel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。
这方面典型的应用有.NET的WPF,js框架Knockout、AngularJS、Angular等。
http://www.cnblogs.com/guwei4037/p/5591183.html
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
http://www.jianshu.com/p/f4faa720f00d