MVP模式

Posted YangBin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVP模式相关的知识,希望对你有一定的参考价值。

在传统的android开发中,我们一般是使用MVC模式进行开发的。
传统MVC模式介绍:
  1. View: 视图层,对应xml文件
  2. Controller: 控制层,对应Activity和Fragment层,进行数据处理
  3. Model:实体层,负责获取实体数据
在Android开发中采用MVC模式的一个最大的弊端就是xml作为View层视图能力实在太弱,所以一般情况下我们都是通过Controller层来辅助处理一些视图的。这样的结果就导致Controller既作为控制层的同时又承担了View层的大部分功能,采用MVC模式往往会导致Activity和Fragment中的代码非常复杂。我们将Android中采用的MVC模式称为MV模式更加恰当。
MVP模式介绍:
  1. View: 视图层,对应xml文件与Activity/Fragment
  2. Presenter: 逻辑控制层,同时持有View和Model对象
  3. Model: 实体层,负责获取实体数据
 
采用MVP模式的优势是:
  1. 把业务逻辑抽离到Presenter层中,View层专注于UI的处理。
  2. 分离视图逻辑与业务逻辑,达到解耦的目的。
  3. 提高代码的阅读性。
  4. Presenter被抽象成接口,可以根据Presenter的实现方式进行单元测试。
  5. 可拓展性强。
采用MVP模式的缺点:
  1. 项目结构会对后期的开发和维护有一定的影响。具体视APP的体量而定。
  2. 代码量会增多,如何避免编写过多功能相似的重复代码是使用MVP开发的一个重点要处理的问题。
  3. 有一定的学习成本。
综上所述,在Android上采用MVP模式的优势是:大大优化代码的维护性与拓展性的同时对代码进行深度解耦,使各个层级的分工更加明晰。
 

以上是关于MVP模式的主要内容,如果未能解决你的问题,请参考以下文章

从Google的todo-mvp源码中学习MVP模式

从Google的todo-mvp源码中学习MVP模式

MVP模式

Android架构篇--MVP模式的介绍篇

MVP?(MVP 模式)?编辑

MVP 模式简单易懂的介绍方式