Android MVP开发模式的结构及优缺点详解
2018-12-13
在android开发中,有各种各样的开发模式,但遇到大型项目开发时,熟悉android的朋友都会推荐MVP开发模式。那MVP开发模式到底是什么,有什么优点呢?
1、android MVP开发模式的概念
Android的MVP是由MVC优化衍生出来的一种模式,MVP将MVC中的Controller层进行了优化而生成了Presenter。Presenter层和MVC的Controller一样,负责核心逻辑,但不一样的是Presenter通过接口协议进行数据传递,并阻断了View和Model的直接联系,从而使View和Model更加专注于自身业务逻辑。
2、android 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的思想,Use Cases和Presenters将Entities和UI间隔分离,从而使Entities和UI只需关心自身逻辑,数据处理完全交给其他两层。
这里大家可能会有一些疑惑,为什么会有Use Cases?Presenter层自身的构架,因为仅仅套用MVP模式,虽然在一定程度上降低View的耦合度,但因为Presenter既要处理数据,又要结合需求控制UI交互,所以很可能出现Presenter逻辑的冗余。而在Presenter和Model之间包装了Use Cases,将数据逻辑处理交给UseCases,就可以保证Presenter更专心于UI交互。
3、android MVP开发模式的优点
1)View和Model之间的耦合度降低,使其更关注自身业务逻辑,结构清晰,维护方便;
2)便于单元测试;
3) 代码复用率提高;
4)代码框架更适用于快速迭代开发;
4、android MVP开发模式的缺点
任何开发模式都是有利也有弊的,毕竟世间完美的事物还是少见的。上面提到了MVP模式的有点,那就不得不说其还存在的缺点,或者说不足更准确吧。
MVP模式的不足,主要表现在每个view都有presenter ,类相对比较多。
以上就是android MVP开发模式的结构及优缺点,综合优缺点,优点还是远远大于缺点的,在android大型项目中,MVP开发模式还是很值得使用的。
相关文章:《Android内核开发之repo的常用命令大全》
文章来源:csdn
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。
http://www.pinlue.com/style/images/nopic.gif