MVC MVP MVVM三种通讯方式
2016-03-12 08:08
387 查看
一、MVC
通信方式:
1、View 传送指令到 Controller
2、Controller 起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。
3、Model 将新的数据发送到 View,用户得到反馈
所有通信都是单向的。
二、MVP
通信方式:
1、各部分之间的通信,都是双向的。
2、View 与 Model 不发生联系,都通过 Presenter 传递。
3、View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
三、MVVM
通信方式:
MVVM
模式是 MVP 的升级:
基本上与 MVP 模式完全一致。唯一的区别是,它采用双向绑定:View的变动,自动反映在 ViewModel,反之亦然。
我们针对业务模型,建立的数据结构和相关的类,就可以理解为AndroidApp 的 Model,Model 是与 View 无关,而与业务相关的,例如数据库读取数据,应该是属于Model层的事情。
MVP中 Presenter 真正需要处理的并非业务逻辑,而应该是视图逻辑。业务逻辑应该是视图无关的,可以是单独的一个类中,也可以是在P中。 P与V是一对多关系。EventBus应该作用于P层,在P层发送,在P层接收。
MVVM中,M层改变并不是直接改变V层,而是通过VM层去改变V层。M与V依旧是不直接操作的。
文章参考链接 http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
通信方式:
1、View 传送指令到 Controller
2、Controller 起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。
3、Model 将新的数据发送到 View,用户得到反馈
所有通信都是单向的。
二、MVP
通信方式:
1、各部分之间的通信,都是双向的。
2、View 与 Model 不发生联系,都通过 Presenter 传递。
3、View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
三、MVVM
通信方式:
MVVM
模式是 MVP 的升级:
基本上与 MVP 模式完全一致。唯一的区别是,它采用双向绑定:View的变动,自动反映在 ViewModel,反之亦然。
我们针对业务模型,建立的数据结构和相关的类,就可以理解为AndroidApp 的 Model,Model 是与 View 无关,而与业务相关的,例如数据库读取数据,应该是属于Model层的事情。
MVP中 Presenter 真正需要处理的并非业务逻辑,而应该是视图逻辑。业务逻辑应该是视图无关的,可以是单独的一个类中,也可以是在P中。 P与V是一对多关系。EventBus应该作用于P层,在P层发送,在P层接收。
MVVM中,M层改变并不是直接改变V层,而是通过VM层去改变V层。M与V依旧是不直接操作的。
文章参考链接 http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
相关文章推荐
- VI cacti
- HDU 1003 Max Sum
- JavaScript开发者必备的10个sublime的插件
- 2014-8-10 掉落不简单
- char data[0]在struct末尾的用法
- 64.广搜练习跳马问题
- 64.广搜练习跳马问题
- 64.广搜练习跳马问题
- 64.广搜练习跳马问题
- 【索引】读书笔记-代码大全
- .net破解一(反编译,反混淆-剥壳,工具推荐)
- C#使用Dotfuscator混淆代码的加密方法
- 日经春秋 20160312
- DeleteDirectory删除文件和文件夹下所有文件的工具类
- c++编程规范的纲要和记录
- 天声人語 20160312 「もっと保育園を作れ」
- msxml dom 全解析
- 客户端网页编程,第二章思维导图
- C语言回顾与再学习——数组与指针
- C++ Exceptional 写异常安全的代码