MVC

  • 模型(Model):数据保存
  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑

通信方式:

通信流程:

  1. 用户通过UI界面的交互触发View响应,View发送指令给Controller
  2. Controller完成业务逻辑之后,要求Model更新数据
  3. Model将新数据发送给View,要求View更新,更新后用户得到反馈

注意:MVC所有通信都是单向的

MVP

MVP模式将MVC的Controller更名为Presenter

通信方式:

注意:

  1. 各部分之间的通信都是双向
  2. View和Model不发生联系,都通过Presenter传递
  3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

MVVM

MVVM 模式将 Presenter 改名为 ViewModel(视图模型),基本上与 MVP 模式完全一致。

通信方式

唯一的区别是,View和ViewModel之间是双向绑定

通信流程:

  1. View 接收用户交互请求
  2. View 将请求转交给ViewModel
  3. ViewModel 操作Model数据更新
  4. Model 更新完数据,通知ViewModel数据发生变化
  5. ViewModel 更新View数据

典型框架:Vue、Angular

以Vue为例

  • model:对应data中的数据
  • v:模板、UI界面
  • VM:Vue实例对象

MVVM与MVC最大的区别在于MVVM中的ViewModel会自动更新视图

参考文档

MVC,MVP 和 MVVM 的图示 - 阮一峰的网络日志 (ruanyifeng.com)

浅析MVC、MVP、MVVC的异同相关推荐

  1. Android架构设计之MVC/MVP/MVVM浅析

    目录 写在前面 一.案例演示 二.MVC模式 2.1.MVC简介 2.2.MVC模式的使用 2.3.MVC模式的缺点 三.MVP模式 3.1.MVP简介 3.2.MVP模式的作用 3.3.MVP模式的 ...

  2. MVC,MVP与MVVM

    一.MVC是什么 1.MVC概念 MVC(Model View Controller),模型(model)-视图(view)-控制器(controller),软件框架的一种. (1)最上层view视图 ...

  3. Android App的设计架构:MVC,MVP,MVVM与架构经验谈

    本文转载自https://www.tianmaying.com/tutorial/AndroidMVC,原文作者周鸿博. 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开 ...

  4. MVC与MVVC的区别

    MVC:control负责调度,model和view没有直接联系(分层,职责明确.可重用但业务逻辑无法重用) 1.view(负责跟用户交互的页面) 2.control(接受请求->调用模型-&g ...

  5. MVC---Android App的设计架构:MVC,MVP,MVVM与架构经验谈

    转载自: http://www.tianmaying.com/tutorial/AndroidMVC 1.架构设计的目的 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使 ...

  6. mvc mvp mvvm的区别与联系_MVC,MVP,MVVM比较以及区别(上)

    MVC,MVP,MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式,以前只是对他们有部分的了解,没有深入的研究过,对于一些里边的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一些对 ...

  7. .从三层架构到MVC,MVP

    从三层架构到MVC,MVP http://www.cnblogs.com/daizhj/archive/2009/04/30/1447035.html 一. MVC是谁提出的 模型-视图-控制器(MV ...

  8. 表现层持续解耦带来的模式转变 MVC MVP MVVM

    ---微软WPF带来的团队变化和软件技术变化  Model-View-ViewModel是一种架构模式,主要在WPF.Silverlight和WP7开发里使用,它的目标是从视图层移除几乎所有代码隐藏( ...

  9. MVC, MVP, MVVM比较以及区别(下)

    上一篇得到大家的关注,非常感谢.一些朋友评论中,希望快点出下一篇.由于自己对于这些模式的理解也是有限,所以这一篇来得迟了一些.对于这些模式的比较,是结合自己的理解,一些地方不一定准确,但是只有亮出自己 ...

  10. java mvc mvp mvvm_一篇文章了解架构模式:MVC/MVP/MVVM

    架构模式的文章很多,好理解的没有几个.大部分文章出现的主要问题有: 没有设定好作用域:前端MVC是改造过的MVC,和后台MVC有明显的区别,不能一概而论 没有实际的例子:实际的例子对应日常的工作,没有 ...

最新文章

  1. python整数类型的表示字母_Python学习笔记之基本数据类型-Number
  2. 2021年春季学期-信号与系统-第十五次作业参考答案-第九小题参考答案
  3. [转载] 中华典故故事(孙刚)——13 马虎
  4. SpringBoot学习系列之一
  5. 高质量C /C编程指南---附录B :C /C试题和谜底
  6. iOS10 资料汇总:值得回看的 10 篇 iOS 热文
  7. 番外篇01:angularJS最佳实战
  8. 精通Python网络爬虫:核心技术、框架与项目实战.3.2 爬行策略
  9. Jsp+Ssh+Mysql实现的简单的企业物资信息管理系统
  10. Java RandomAccessFile示例
  11. python实验收获与反思 100字_期中考试总结与反思100字4篇
  12. svm (opencv)几个主要函数
  13. Python django 安装 mysqlclient 失败
  14. 第一个Maven工程的目录结构和文件内容及联网问题
  15. android 程序员 计算器,程序员计算器(进制转换)
  16. Android--关闭某个指定activity,android开发游戏
  17. 计算机系毕业论文绪论,本科毕业论文绪论范文
  18. 这篇文章说说特征工程(反欺诈与征信变量)
  19. A1,A2,A3,A4纸的尺寸
  20. 织梦dedecms橙色响应式月嫂保姆家政服务公司网站模板

热门文章

  1. oracle if中过程判断,oracle的if判断语句
  2. Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境【转】
  3. SQL Server添加数据
  4. php laravel 扫码支付 一码付
  5. android canvans 画3d,如何用Canvas做一个3D球
  6. 如何在spring boot+maven项目中调用支付宝第三方接口(沙箱环境)
  7. 无向图输出两个节点之间的所有路径
  8. 即时通讯IM源码应该如何做好安全防护?
  9. 单一职责模式之装饰器模式
  10. SpringCloud 中 Feign 核心原理,简单易懂!