码迷,mamicode.com
首页 > Web开发 > 详细

MVC、MVP、MVVM

时间:2016-03-06 23:19:33      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

MVC的概念相信大家应该都已经不陌生了。简单说来,MVC分别是Model、View和Controller。Model负责数据和访问数据的方法,View负责展示,Controller负责业务逻辑。这样各司其职,各功能模块也就好分离和测试。

接触前端后,又有了许多新名词。包括MVP和MVVM。今天就来说下这个MVP和MVVM。

其实他们的区别很简单。先上一张图,然后再来一些文字说明。

技术分享

首先明确下传统的MVC模式。这种模式下,用户和View交互,然后View将用户的操作传递给Controller,Controller根据业务逻辑对Model进行更新。而View以观察者方式来判断Model的变化,再来更新View自己。

优点:不同功能分层,利于功能的模块化。

缺点:由于Controller依赖于view,因此不易测试。

 

然后是MVP。在此模式下,C变为P,既由Controller变为Presenter。此时,View不是通过监听Model进行更新,而是Presenter根据Model的变化然后通过 View提供的接口来对View进行修改。

优点:功能集中于Presenter,因此便于测试。

缺点:可能导致Presenter过于庞大。

 

最后是MVVM。在此模式下,C变为ViewModel。此时,调用关系和MVP差不多,不同的是ViewModel中有一个专门的Binder用来负责数据的同步。这样即可以保证View和Model保持一致,也可以减少ViewModel的代码量。

优点:减少Controller大小,易维护。

缺点:引入过多,不适合小应用。

MVC、MVP、MVVM

标签:

原文地址:http://www.cnblogs.com/dhuhank/p/5248793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!