浅谈MVC、MVP、 MVVM
来源:互联网 发布:淘宝淘抢购有小二吗 编辑:程序博客网 时间:2024/05/19 00:13
1. MVC、MVP、 MVVM
View 主要负责与用户交互,交互可以分成两部份,一部份功能为展示给用户称为输出(如数据表格显示,动画效果,视频播放等等),一部份功能用于用户反馈给系统称为输入(如按键点击,缩放手势,滑动手势等)。
Model 主要负责数据获取和传输,如数据请求,数据上传,数据库读写等。
Controller(Presenter) 主要用负责业务处理。
MVC 与 MVP 简单比较
- 各个模块间的通信方式不一样
MVC: View 一般情况在发生交互或用户有输入的时候会(如按键点击,Activity创建等),用command模式 发送command到Controller, Controller在收到Command并处理完成逻辑后会通知到Model,Model在收到数据并处理完成后一般会用观察者的方式更新到View。
MVP:在Model处理完数据后更新的对像是Presenter - Controller与Presenter 所承担的职责有所变化
Controller:主要负责View事件的处理
Presenter: view事件处理,并承担有数据适配的职责 - Model与View之间的藕合度有所区别 MVC: V与M之间有藕合关系MVP ;V与M之间没有藕合关系
MVP 与 MVVM简单比较
MVVM也是从MVP演化的,是WPF版的MVP,相对于MVP, VM与V之间是双向bind的,即 VM与View的属性保持一至,MVVM加强了VM与view的关联性。
2.适用场景
MVC用于View与Model的连接比较紧密,一部分数据bind的内容放到View里面完成这样加重了View的职责,不太适合重View业务场景。MVVM中VM与V的双向bind更适合于View数据显示与数据操作更紧密的场景,也就是适合UI与数据变化频繁的场景。而MVP,P与View没有双向绑定,P的操作性更加灵活,更适合处理业务逻辑偏重的业务逻辑。
我司是偏重于业务逻辑的业务场景,选择了MVP,并在基础的mvp上做了一些改进,感兴趣的同学可以参照我在GitHub上传的demo中,看一下。
demo地址:点击打开链接
0 0
- 浅谈 MVC MVP MVVM
- 浅谈MVC、MVP、 MVVM
- 浅谈MVVM MVC MVP框架
- 浅谈Android中MVC、MVP、MVVM
- MVC MVP MVVM模式的浅谈
- 浅谈MVC,MVP,MVVM区别与联系
- 浅谈mvc、mvp、mvvm框架模式
- 浅谈MVC、MVP和MVVM架构
- 浅谈MVC、MVP、MVVM的区别
- 浅谈MVC、MVP、MVVM的区别
- 浅谈 MVC、MVP 和 MVVM 架构模式
- 浅谈MVC,MVP,MVVM区别联系
- 浅谈MVC、MVP和MVVM,以及iOS中的MVC
- 浅谈Android中MVC、MVP、MVVM模式(一)
- 浅谈Android中MVC、MVP、MVVM模式(二)
- 浅谈Android中MVC、MVP、MVVM模式(三)
- 浅谈Android架构设计模式中MVC、MVP、MVVM
- 浅谈MVC、MVP、MVVM架构模式的区别和联系
- 逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)
- 如何在MDK环境下使用printf以及使用vsprintf
- (31):用实力域代替序数
- Ubuntu 搭建gitlab服务器之二
- gmic 2017北京大会嘉宾信息提前看 明星科学家都在这里
- 浅谈MVC、MVP、 MVVM
- oracle查询表空间大小很缓慢
- 从马尔科夫链到吉布斯采样与PageRank
- Aneka:从企业网格到面向市场的云计算
- 如何给Activity设置成透明Style
- 关于SSM的url映射问题
- iOS 粒子效果实现CAEmitterLayer
- Spring中@Async注解实现“方法”的异步调用
- HttpMessageConverter消息转换器