在MVC中,View可以直接访问模型,因此,View将包含Model信息,并且不可避免地包含一些业务逻辑。MVC模型侧重于模型的不变性,因此在MVC模型中,模型不依赖于视图,但视图依赖于模型。不仅如此,由于某些业务逻辑是在View中实现的,因此很难更改View,至少那些业务逻辑无法重用。
MVVM是“双向绑定数据模型数据”的核心,因此View和Model之间没有连接,通过ViewModel进行交互,MVC是单向通信。也就是说,View和Model必须得到Controller的支持。MVC和MVVM之间的区别并不在于VM完全取代C。ViewModel的目的是提取Controller中显示的业务逻辑,而不是替换Controller。其他视图操作服务应在Controller中实现,换句话说,MVVM实现了业务逻辑组件的重用。
资料拓展:MVVM模式试图获得MVC提供的功能性开发分离的两个优点,同时利用数据绑定的优势和通过绑定数据的框架尽可能接近纯应用程序模型。它使用绑定器、视图模型和任何业务层的数据检查功能来验证传入的数据。