架构模式:MVC,MVP&MVVM

原创 2017年06月05日 09:55:38

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

MVC

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

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

MVP

  MVP(Model-View-Presenter)
  MVP 模式将 Controller 改名为 Presenter(呈现),同时改变了通信方向。
  改为Presenter目的是完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。
  MVP模式
  
  所有的通信都是双向的。
  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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android App的三种架构模式MVC,MVP和MVVM

Android App的三种架构模式MVC,MVP和MVVM

浅谈Android架构设计模式中MVC、MVP、MVVM

以下基于对三种模式已经熟悉所总结,不会介绍模式的基础概念,以下是自己结合其他人和自己实际开发中的经验对这些概念一些感悟。 Activity是V还是C 对于Activity属于V还是属于C这...
  • ourpush
  • ourpush
  • 2016年10月01日 22:16
  • 300

《Android源码设计模式》读书笔记 (25) 第25章 Android架构之MVC,MVP,MVVM

前言 在说MVC和MVP,MVVM架构之前,我们先得理清楚什么是框架模式,什么时设计模式. 框架模式:通常是对代码的重用,用来对软件的设计进行分工. 设计模式:通常是对设计的重用,是小技巧,对具体的问...

浅谈MVC、MVP、MVVM架构模式的区别和联系

MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。 一、MVC(Model-View-Controller) MVC是比较直...

iOS架构模式MVC、MVP、MVVM(内附demo)

MVCMVC的实现思路是:用户操作View,在Controller层完成业务逻辑处理,更新Model层,将数据显示在View层。 在MVC中,每个层之间都有关联,耦合比较紧,在大型项目中,维护起来比...

浅谈MVC、MVP、MVVM架构模式的区别和联系

MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。 一、MVC(Model-View-Controller) MVC是比较直观的架构...

iOS架构模式-揭秘MVC,MVP,MVVM和VIPER

iOS架构模式揭秘MVC,MVP,MVVM和VIPER在IOS中使用MVC感觉很奇怪?对切换到MVVM存在疑虑?听过VIPER,但是又不确定是否值得尝试?继续阅读,你会找到上面问题的答案,如果没有你想...

浅谈MVC、MVP、MVVM架构模式的区别和联系

MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。 一、MVC(Model-View-Controller) MVC是比较直...

104.iOS架构模式(MVC/MVCS/MVP/MVVM/VIPER)

在进行架构设计的时候到底是选择MVC或者MVVM还是选择VIPER呢? 这就要根据你的业务需求, 项目规模以及项目未来的推演预测等诸多因素了. 这也是争议颇多的话题,所以我在这里来把几个主流思想做...

MVC MVVM MVP Backbone 互动模式 架构模式总结分析

一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控制器(Controller):业务逻辑 模型(Model):数据保存 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:架构模式:MVC,MVP&MVVM
举报原因:
原因补充:

(最多只允许输入30个字)