Android开发MVP模式解析
来源:互联网 发布:linux开机自动运行脚本 编辑:程序博客网 时间:2024/05/17 01:54
转载请注明出处:http://write.blog.csdn.net/postedit/40147209
在开发Android应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构架时自认为MVC层级分的特别明确,但最终往往是一个Activity有好几百行代码,而且逻辑和UI显示完全混杂在一起,导致后续项目的维护成本巨大。一个偶然的机会看到有种MVP模式(Mode-View-Presenter)可以比MVC更好的解耦和,然后好奇的研究了下这个模式并尝试在现在项目中进行推广。下面就把自己目前学习到知识总结出来。
MVP模式将分为两篇博客进行总结:
(一)Android开发MVP模式解析
(二)Android开发MVP模式实践
一、MVP简介
我理解的MVP是由MVC优化衍生出来的一种模式,MVP将MVC中的Controller层进行了优化而生成了Presenter。Presenter单词翻译为“提出者;任命者;主持人”,Presenter层和MVC的Controller一样,负责核心逻辑,但不一样的是Presenter通过接口协议进行数据传递,并阻断了View和Model的直接联系,从而使View和Model更加专注于自身业务逻辑。
二、MVP结构
View
View通常来说就是有Activity、Fragment实现的,View会包含一个或多个Presenter的引用来满足视图的业务逻辑。View和Presenter的交互是双向的,即View层可以调用Presenter的逻辑方法,Presenter也可以控制View的显示。
Presenter
Presenter作为Model和View的桥梁,负责从Model拿到数据进行处理并返回给View。但Presenter和其他两层的沟通是通过接口协议进行的,所以每个Presenter中通常会包涵一个或多个接口协议。
Model
和MVC一样,作为数据仓库只负责对APP数据进行处理。
Android开发MVP模式实践中的示例将APP分为以下四层。
- Entities:APP中的业务类。
- Use Cases:负责从将Entities中的数据进行处理和包装。
- Presenters:从Use Cases获取处理好的数据,然后根据需求逻辑为UI提供合适的数据。
- UI:从Presenters获取处理好的最终数据,和用户进行直接交互。
三、MVP VS MVC
在把原本MVC模式的代码修改为MVP模式后,总结这两个模式在实际使用过程中的不同点基本上总结为两点:
- 各个层之间通过接口协议进行沟通;
- View和Model不再进行直接交互;
四、总结
MVP将会为你的代码带来如下好处:
- View和Model之间的耦合度降低,使其更关注自身业务逻辑;
- 便于单元测试;
- 代码复用率提高;
- 代码框架更适用于快速迭代开发;
- Android开发MVP模式解析
- Android开发MVP模式解析
- Android开发MVP模式解析
- Android MVP开发模式
- android MVP 开发模式
- Android mvp开发模式
- Android 开发MVP模式
- Android mvp开发模式
- android mvp开发模式
- Android开发MVP模式实践
- android开发模式之MVP
- Android开发MVP模式实践
- Android中的 mvp 开发模式
- Android MVP 开发模式优缺点
- Android开发中的MVP模式
- Android MVP开发模式实例
- android开发之--MVP模式
- Android开发之MVP模式
- 类似Popuwindow的实现
- 谷歌董事长施密特给年轻职场人士的八条建议
- [LeetCode]Rotate List
- 第八周项目2计算小贺的薪水
- 阿里云部署Docker(5)----管理和发布您的镜像
- Android开发MVP模式解析
- git操作笔记
- 快意测试云活动9月获奖金额已发放,10月活动依然继续
- ios8CLLocationManager无法定位
- 分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
- 做技术的结局
- Arrays.asList()方法的一个有趣现象
- 博客目录
- 正差值