MVVM在概念上是真正将页面与数据逻辑分离的模式,在开发方式上,它是真正将前台代码开发者(JS+HTML)与后台代码开发者分离的模式(asp,asp.net,php,jsp)。在介绍它之前我们先来看一下MVP和MVC的定义:
MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller。
MVC里,View是可以直接访问Model的!从而,View里会包含 Model信息,不可避免的还要包括 一些 业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,及View。所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
对于MVVM,我认为它是在Presentation上进行设计的,它前数据绑定工作放到一个JS里去实现,JS由前端开发人员去控制,而这个JS文件的主要功能是完成数据的绑定,即把model绑定到UI的元素上。
MVVM架构~Knockoutjs系列之text,value,attr,visible,with的数据绑定
MVVM架构~Knockoutjs系列之js接收C#数据集合的方式
感谢您的阅读!
原文:http://www.cnblogs.com/lori/p/3552571.html