前几天读了阮一峰老师的文章《MVC,MVP 和 MVVM 的图示》,觉得讲得十分清晰,所以在这里做一波复习和总结。

MVC, MVP 与 MVVM 是三种常见的软件架构,它们之间的特点与区别如下:

一、MVC :

1. MVC是模型( Model ),视图( View ),控制器( Controller )的缩写;

- 视图( View ) 负责用户界面

- 模型( Model )负责保存数据

- 控制器 ( Controller )负责业务逻辑。

2. 通信方式:

所有通信都是单向的,当视图改变时,传送指令到控制器,控制器再通知Model改变状态, Model将新的数据发送到视图中,用户得到反馈。

3. 特点:

二、 MVP:

1. MVP是将MVC中的Controller改成了Presenter,通信方向也由单向变为了双向

2. 通信方式:

所有通信都是双向的,View与Model不产生直接联系,主要的业务逻辑部署在Presenter中。

、 MVVM:

    1.MVVM 中将Presenter改名为了ViewModel ( 视图模型 )

2. 通信方式:

它在VIew与VM的通信中,采用了双向数据绑定,VIew中的变化会自动反应在ViewModel中。

        

MVC, MVP 与 MVVM相关推荐

  1. MVC,MVP与MVVM

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

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

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

  3. android MVC,MVP,MVVM

    1.MVC思想 无论在任何情况下,软件设计都要符合高内聚,低耦合的思想.如果背离这一原则,代码将很难进入维护. MVC出现与上世纪70年代,在三十多年的工程实践中,MVC充分证明了它的成功.在软件开发 ...

  4. android MVC,MVP,MVVM概论

    1.MVC思想 无论在任何情况下,软件设计都要符合高内聚,低耦合的思想.如果背离这一原则,代码将很难进入维护. MVC出现与上世纪70年代,在三十多年的工程实践中,MVC充分证明了它的成功.在软件开发 ...

  5. mvc mvvm mvp_mvc vs mvp vs mvvm

    mvc mvvm mvp 思想程序员(Thought Programmer) Nowadays we have many options when it comes to architecture d ...

  6. mvc mvp mvvm比较以及区别

    MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式. 软件中最核心的,最基本的东西是什么? 是的,是数据.我们写的所有代码,都是围绕数据的. 围绕着数据的产生.修改等变化,出现了 ...

  7. MVC、MVP和MVVM的优缺点

    目前流行的架构模式是MVC.MVP和MVVM 1.MVC Model(模型).View(视图).Controller(控制器) 优点: 1)耦合性低,视图层和业务层分离 2)可维护性高,简单,方便修改 ...

  8. MVC、MVP、MVVM

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

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

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

最新文章

  1. 小米8 SE和小米9 SE 开源 Android 9 Pie 内核代码
  2. 谁是2020年最强Python库?年度Top10出炉
  3. 云间来客 --- Java 目录大纲
  4. cacti监控下添加对磁盘io的监控方法(Linux主机和Windows主机)
  5. CentOS 常用命令
  6. ubuntu mysql lessons
  7. kubeflow kfserving 详解
  8. HDU 4762 Cut the Cake
  9. 小程序多标签切换、Tab切换类似功能
  10. 自动识别人脸html5,【前端】H5人脸实时识别自动截取人脸照片
  11. Django Zip文件下载
  12. 【CAD arx二次开发】CAD2020 通过Wizard向导新建arx项目
  13. JavaScript 获取元素方法
  14. 计算机组成原理课设题目详解
  15. shell编程,脚本语言
  16. 学完Python的7大就业方向,哪个赚钱多?
  17. 我画了近百张图来理解红黑树
  18. apple iMac一体机 装双系统 实战! (Apple +Win 7 64bit)
  19. 16万字智慧医疗-医院信息化大数据建设 方案
  20. 小程序/公众号抽奖活动页面-逻辑

热门文章

  1. “计算机科学“与“软件工程“有什么区别?哪个专业更适合你?
  2. Bootstrap的工具提示(Tooltip)
  3. 【CCF】公共钥匙盒
  4. 怎么用计算机截图快捷键,教您怎么使用电脑自带的截图快捷键
  5. R语言基础(用最简单的方式了解学习R语言)
  6. Python破解滑动验证码(极验/无背景图)
  7. UML协作图(通信图)——软件需求分析与设计
  8. Redis源码剖析和注释(十六)---- Redis输入输出的抽象(rio)
  9. 将excel的单元格日期格式转换成文本格式
  10. PWA ( Progressiv Web App )初探总结