架构模式:MVC,MVP&MVVM

  复杂的软件需要清晰合理的架构,便于开发和后期维护。这就离不开架构模式。

MVC

  MVC(Model-View-Controller):最为直观的架构模式。他将软件分为三个部分:  

  1. View     视图:用户界面
  2. Controller  控制器:业务逻辑
  3. Model    模型:数据保存
      架构模式:MVC,MVP&MVVM架构模式:MVC,MVP&MVVM
      
      所有的通信都是单向的。
      通信流程一般为:用户操作->V->C->M->V
      用户也可以直接向controller传递指令。
      
      实际上,在后端开发中,M和V是相互独立的,并不能直接通信,必须通过controller,如下图
    架构模式:MVC,MVP&MVVM架构模式:MVC,MVP&MVVM

MVP

  MVP(Model-View-Presenter)
  MVP 模式将 Controller 改名为 Presenter(呈现),同时改变了通信方向。
  改为Presenter目的是完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。
  架构模式:MVC,MVP&MVVM
  
  所有的通信都是双向的。
  presenter非常厚,所有的逻辑部署都在这。而view非常薄,不部署任何业务逻辑。

MVVM

  MVVM(Model-View-ViewModel)
  在结构上,MVVM与MVP类似,只是将presenter改为viewmodel。在思想上,MVVM将“数据模型数据双向绑定”的思想作为核心。
  MVVM模式也可以看做,在MVC/MVP的基础上,将controller/presenter的部分业务逻辑分担到view。如图:
  架构模式:MVC,MVP&MVVM
  
  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