Android MVP开发模式
来源:互联网 发布:淘宝网时间校准 编辑:程序博客网 时间:2024/05/01 23:05
转载请注明出处:http://blog.csdn.net/guxiao1201/article/details/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模式
- python操作Excel读写--使用xlrd
- 不用重建项目,就能添加ActiveX的代码文件
- Android中Intent组件详解
- uva 10716 Evil Straw Warts Live
- 发布Android APK应用流程
- Android MVP开发模式
- apk包修改后二次打包
- Sqoop1.4.4实现关系型数据库多表同时导入HDFS或Hive中
- C/C++浮点数在内存中的存储方式
- Linux下默认RPM安装路径
- 【Cocos2d-x 021】 xml解析
- 安卓-进度处理对话框(ProgressDialog)
- ubuntu14.04安装搜狗输入法
- poj2649 Factovisors 质因数分解