MVC, MVP 与 MVVM
前几天读了阮一峰老师的文章《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相关推荐
- MVC,MVP与MVVM
一.MVC是什么 1.MVC概念 MVC(Model View Controller),模型(model)-视图(view)-控制器(controller),软件框架的一种. (1)最上层view视图 ...
- MVC, MVP, MVVM比较以及区别(下)
上一篇得到大家的关注,非常感谢.一些朋友评论中,希望快点出下一篇.由于自己对于这些模式的理解也是有限,所以这一篇来得迟了一些.对于这些模式的比较,是结合自己的理解,一些地方不一定准确,但是只有亮出自己 ...
- android MVC,MVP,MVVM
1.MVC思想 无论在任何情况下,软件设计都要符合高内聚,低耦合的思想.如果背离这一原则,代码将很难进入维护. MVC出现与上世纪70年代,在三十多年的工程实践中,MVC充分证明了它的成功.在软件开发 ...
- android MVC,MVP,MVVM概论
1.MVC思想 无论在任何情况下,软件设计都要符合高内聚,低耦合的思想.如果背离这一原则,代码将很难进入维护. MVC出现与上世纪70年代,在三十多年的工程实践中,MVC充分证明了它的成功.在软件开发 ...
- mvc mvvm mvp_mvc vs mvp vs mvvm
mvc mvvm mvp 思想程序员(Thought Programmer) Nowadays we have many options when it comes to architecture d ...
- mvc mvp mvvm比较以及区别
MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式. 软件中最核心的,最基本的东西是什么? 是的,是数据.我们写的所有代码,都是围绕数据的. 围绕着数据的产生.修改等变化,出现了 ...
- MVC、MVP和MVVM的优缺点
目前流行的架构模式是MVC.MVP和MVVM 1.MVC Model(模型).View(视图).Controller(控制器) 优点: 1)耦合性低,视图层和业务层分离 2)可维护性高,简单,方便修改 ...
- MVC、MVP、MVVM
MVC.MVP.MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用. 一.MVC(Model-View-Controller) MVC是比较直观的架构模式 ...
- mvc mvp mvvm的区别与联系_MVC,MVP,MVVM比较以及区别(上)
MVC,MVP,MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式,以前只是对他们有部分的了解,没有深入的研究过,对于一些里边的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一些对 ...
最新文章
- 小米8 SE和小米9 SE 开源 Android 9 Pie 内核代码
- 谁是2020年最强Python库?年度Top10出炉
- 云间来客 --- Java 目录大纲
- cacti监控下添加对磁盘io的监控方法(Linux主机和Windows主机)
- CentOS 常用命令
- ubuntu mysql lessons
- kubeflow kfserving 详解
- HDU 4762 Cut the Cake
- 小程序多标签切换、Tab切换类似功能
- 自动识别人脸html5,【前端】H5人脸实时识别自动截取人脸照片
- Django Zip文件下载
- 【CAD arx二次开发】CAD2020 通过Wizard向导新建arx项目
- JavaScript 获取元素方法
- 计算机组成原理课设题目详解
- shell编程,脚本语言
- 学完Python的7大就业方向,哪个赚钱多?
- 我画了近百张图来理解红黑树
- apple iMac一体机 装双系统 实战! (Apple +Win 7 64bit)
- 16万字智慧医疗-医院信息化大数据建设 方案
- 小程序/公众号抽奖活动页面-逻辑
热门文章
- “计算机科学“与“软件工程“有什么区别?哪个专业更适合你?
- Bootstrap的工具提示(Tooltip)
- 【CCF】公共钥匙盒
- 怎么用计算机截图快捷键,教您怎么使用电脑自带的截图快捷键
- R语言基础(用最简单的方式了解学习R语言)
- Python破解滑动验证码(极验/无背景图)
- UML协作图(通信图)——软件需求分析与设计
- Redis源码剖析和注释(十六)---- Redis输入输出的抽象(rio)
- 将excel的单元格日期格式转换成文本格式
- PWA ( Progressiv Web App )初探总结