架构模式:MVC,MVP&MVVM
复杂的软件需要清晰合理的架构,便于开发和后期维护。这就离不开架构模式。
MVC
MVC(Model-View-Controller):最为直观的架构模式。他将软件分为三个部分:
- View 视图:用户界面
- Controller 控制器:业务逻辑
- Model 模型:数据保存
所有的通信都是单向的。
通信流程一般为:用户操作->V->C->M->V
用户也可以直接向controller传递指令。
实际上,在后端开发中,M和V是相互独立的,并不能直接通信,必须通过controller,如下图
MVP
MVP(Model-View-Presenter)
MVP 模式将 Controller 改名为 Presenter(呈现),同时改变了通信方向。
改为Presenter目的是完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。
所有的通信都是双向的。
presenter非常厚,所有的逻辑部署都在这。而view非常薄,不部署任何业务逻辑。
MVVM
MVVM(Model-View-ViewModel)
在结构上,MVVM与MVP类似,只是将presenter改为viewmodel。在思想上,MVVM将“数据模型数据双向绑定”的思想作为核心。
MVVM模式也可以看做,在MVC/MVP的基础上,将controller/presenter的部分业务逻辑分担到view。如图:
JS框架中的Angular、Vue和Ember就是采用了MVVP模式。
参考文章:
- http://www.cnblogs.com/guwei4037/p/5591183.html
- http://www.jianshu.com/p/f4faa720f00d
- http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html