架构模式: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

原文地址:选择恐惧症的福音!教你认清MVC,MVP和MVVM 相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可...
  • oLevin
  • oLevin
  • 2016年07月23日 15:25
  • 2741

开发模式总结:MVC、MVP&MVVM

1 简介 三者的目的都是分离关注,使得UI更容易变换(从Winform变为Webform),使得UI更容易进行单元测试。 2 MVC MVP 2.1 MVC ...
  • qq_26764551
  • qq_26764551
  • 2017年02月23日 12:33
  • 102

我理解的软件 架构模式,MVC和分层

缘起:作为程序员,很容易天天被业务追逐着,抽不开时间修炼。有一天突然停了一下,忽地就会有一种怅然的感觉,过去的那些日子我学到了什么? 有人很认真地说自己有10年经验,有人笑说你不过是一年经验用了10年...
  • vshuang
  • vshuang
  • 2016年12月03日 00:22
  • 1560

详细讲解mvc与三层架构的区别

看到一篇博客,详细讲解mvc与三层架构的区别。可以看看 注:本文转载自:http://blog.csdn.net/csh624366188/article/details/7183872   -...
  • qq_17478541
  • qq_17478541
  • 2017年03月17日 19:59
  • 473

iOS 框架模式(简述 MVC,MVP,MVVM 和 VIPER)

写在前面的话 最近看了一篇国外大牛写的关于 iOS 框架模式的文章,内容涉及目前 iOS 端诸多主流的框架模式,个人感觉文章写的很不错,收获匪浅,希望能够通过翻译原文的方式更好的体会一下,也分享给更...
  • qq_30513483
  • qq_30513483
  • 2016年11月08日 17:28
  • 705

MVC架构模式

    基于Java的Web应用系统采用MVC架构模式,即model(模型)、view(视图)、control(控制)分离设计。这是目前WEB应用服务系统的主流设计方向。Model:即处理事务逻辑的模...
  • javenstudio
  • javenstudio
  • 2004年10月09日 10:30
  • 1200

Android产品研发(二十五)-->MVC/MVVM/MVP简单理解

本文我们将讲解Android开发中常常涉及到的MVC/MVP/MVVM等模式的基本概念。许多童鞋对Android开发中涉及到的MVC、MVP、MVVM这三种模式不是太清楚,我认为无论是MVC、MVP亦...
  • qq_23547831
  • qq_23547831
  • 2016年10月15日 16:02
  • 2327

mvc 架构模式

模型-视图-控制器(MVC)可能是近年来网络编程圈子里最常被提及的模式之一,目前与网络应用开发沾边的人听到和看到这个字母缩写的次数肯定不下百次。本文我们将详细阐述一下MVC的含义,以及它变的如此流行的...
  • qq_27103099
  • qq_27103099
  • 2015年04月08日 20:56
  • 208

前端架构 IMVC 实时热更新模式

Backbone 框架的逐渐衰退,前端 MVC 发展缓慢,有被 MVVM/Flux 所取代的趋势 React/Vue 和 Redux/Vuex 分别在 MVC 中的 View 层和 Model 层...
  • ejinxian
  • ejinxian
  • 2017年03月28日 23:11
  • 633

MVC架构简介

本篇博客打算简单介绍一下MVC是什么,为接下来写一篇Spring MVC和Struts2的文章做一下铺垫。 MVC是一种架构设计模式,是一种设计理念。是为了达到分层设计的目的,从而使代码解耦,便于维...
  • muyi_amen
  • muyi_amen
  • 2017年01月11日 11:54
  • 1118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:架构模式:MVC,MVP&MVVM
举报原因:
原因补充:

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