MVC、MVP、MVVM

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

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

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

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

优势:不一样功能分层,利于功能的模块化。接口

缺点:因为Controller依赖于view,所以不易测试。同步

 

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

优势:功能集中于Presenter,所以便于测试。im

缺点:可能致使Presenter过于庞大。数据

 

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

优势:减小Controller大小,易维护。

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

相关文章
相关标签/搜索