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

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

相关文章推荐

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

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

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

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

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

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

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

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

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

一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控制器(Controller):业务逻辑 模型(Model):数据保存 ...

iOS 架构模式--解密 MVC,MVP,MVVM以及VIPER架构

在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信你会找到以上问题的答案,如果没找到请在评论中指出。 你将要整...

iOS 架构模式--解密 MVC,MVP,MVVM以及VIPER架构

在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信你会找到以上问题的答案,如果没找到请在评论中指出。 你将要整...

MVC、MVP、MVVM模式Android Demo

  • 2017-05-02 16:40
  • 25.77MB
  • 下载

探究 MVC,MVP,MVVM以及VIPER架构

在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换?相信你会找到以上问题的答案,如果没找到请在评论中指出。你将要整理出你在 iOS...

MVC、MVP、MVVM设计架构

MVC、MVP、MVVM设计架构介绍,架构目的,详细介绍了如何使用这三种设计架构,欢迎进来学习指正
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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