一、MVC

MVC模式的意思是,软件可以分成三个部分。

各部分之间的通信方式如下。

所有通信都是单向的。


二、互动模式

接受用户指令时,MVC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controller。

另一种是直接通过controller接受指令。


三、实例:Backbone
实际项目往往采用更灵活的方式,以 Backbone.js 为例。

1. 用户可以向 View 发送指令(DOM 事件),再由 View 直接要求 Model 改变状态。
2. 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。
3. Controller 非常薄,只起到路由的作用,而 View 非常厚,业务逻辑都部署在 View。所以,Backbone 索性取消了 Controller,只保留一个 Router(路由器) 

四、MVP
MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。

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

五、MVVM
MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。

http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

https://zh.wikipedia.org/wiki/MVC

https://zh.wikipedia.org/wiki/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F

https://zh.wikipedia.org/wiki/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F_(%E8%AE%A1%E7%AE%97%E6%9C%BA)

https://zh.wikipedia.org/wiki/%E7%AE%97%E6%B3%95

http://baike.baidu.com/link?url=WEocloY3xyX-0wAB7W2WO_dkx8wyLUcFAkE6bhKtJ_6hAYT6ZjRGm7CCKbEcDF4w8sWrq5oUxCpLgkiT2guuEa

http://www.cnblogs.com/sirkevin/archive/2012/11/28/2793471.html

5. MVC,MVP 和 MVVM相关推荐

  1. MVC, MVP 与 MVVM

    前几天读了阮一峰老师的文章<MVC,MVP 和 MVVM 的图示>,觉得讲得十分清晰,所以在这里做一波复习和总结. MVC, MVP 与 MVVM 是三种常见的软件架构,它们之间的特点与区 ...

  2. MVC,MVP与MVVM

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

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

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

  4. android MVC,MVP,MVVM

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

  5. android MVC,MVP,MVVM概论

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

  6. mvc mvvm mvp_mvc vs mvp vs mvvm

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

  7. mvc mvp mvvm比较以及区别

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

  8. MVC、MVP和MVVM的优缺点

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

  9. MVC、MVP、MVVM

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

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

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

最新文章

  1. 新版PyTorch发布!新增TorchScript API,扩展ONNX导出……4大功能更新值得关注
  2. golang中的爬虫
  3. Android的系统服务一览
  4. 《编写可读代码的艺术》读后总结
  5. 北理在线作业c语言,北理线性代数在线作业-20210414115922.doc-原创力文档
  6. SpringCloud个人笔记-02-Feign初体验
  7. telnet服务下载 Linux,linux telnet服务安装包
  8. Activiti手动执行的应用(UserTask)
  9. Session 实现、配置与使用详解
  10. 面向对象---特----性
  11. 模拟电话簿提取名字显示
  12. tortoise介绍
  13. 调用企查查上的接口,实现通过公司名称查询公司列表
  14. Windows10系统批量获取所有用户名称、修改所有用户名称
  15. 思科三层交换机不同vlan互通_cisco(三层交换和动态路由,不同vlan间的通信,静态路由实现全网互通)...
  16. Word——打开word时,提示由于宏安全设置,无法找到宏或宏被禁用的一种解决办法
  17. mysql水果销售系统数据库_mysql数据库水果销售系统
  18. 0x800700E1: 无法成功完成操作,因为文件包含病毒 解决方法
  19. 便利贴--23{移动端滑动模块-改良}
  20. [k8s]一步一步学习k8syaml

热门文章

  1. Javascript校验含中文的字符串长度
  2. C++ string类不能像C字符串能靠在i位赋值为‘\0’来截断
  3. SQL Server错误代码及解释(一)
  4. .net2005底层类
  5. 超硬核!只要1美元!教你给MacBook装上触摸屏
  6. 今晚我准备用R语言爬下这几个视频网站!
  7. 设计模式--单例模式(二)双重校验锁模式
  8. [LeetCode]Linked List Cycle
  9. Shell命令-线上查询及帮助之man、help
  10. agc016B - Colorful Hats(智商题)