MVP设计模式是android开发讨论的很火的一个话题,我对设计模式也有一些拙见,为了实践我的一些想法,我在我最新开发的产品中将我心目中的MVP设计模式进行了实践,最后得到了这样的架构。
特点:简单,清晰,拓展性好,能够解决目前碰到的业务场景
因为是基于MVP进行的改造,所以同样是有Model,Presenter,View三层,三层的关系如下图:
这样的设计目的有以下几点:
1. 不设计层和层之间的双向持有,双向持有用来解决的异步更新的问题通过EventBus让view自行实现
1.1. 一是给presenter减负,不需要持有每个view的数据,对view的逻辑控制可以将数据的展现完全交给view来做
1.2. 二是解决了双向持有之间的权利分配问题,减少接口定义的工作,让分层更加清晰,代码更简单
2. 同MVP一样,view负责向presenter索取数据和展示数据,是绝大部分用户交互流程的起点和终点(自发业务除外,比如定时更新等),让view层有更好的拓展性
为了实现以上架构,用了以下几个开源框架,让代码更加简洁:
以上是我对mvp设计模式的实践,目的是希望通过这篇文章为载体,跟各位对mvp设计模式感兴趣的大虾们讨论,欢迎大家在下面留言!