之前一直用谷歌的mvp模式,不过还是觉得m与p的耦合有点高,前段时间有人推荐给我一个新的mvp结构,其实也不新,只是我没用过而已。这里是它的连接地址:https://github.com/antoniolg/androidmvp
它和常用的mvp最大的区别在于她添加了 所谓的‘耦合因子’(这么说显得高端一些,其实就是个接口而已)用来进一步解耦M与P层,我们平日(个人这么用而已)用到的mvp中,与数据源有关的操作很多放在P的实现中,到最后会发现P层就是一整个的P+V的结合体,并没有很完美的诠释presenter的主持思想。为了解决这个问题,刚好又有人给了点建议(上文链接),索性更新,和团队讨论完后将用于实际开发。
先大体讲解上面链接项目的原理。直接贴上其中的一张图,一目了然。
来自网络
这是一个登录的mvp结构,很明显它多了个Interactor(耦合因子),用一句名言:存在即合理。这个耦合因子的存在是为了解决P层的数据源访问。P层将login请求转发给耦合因子,然后再通过耦合因子中的接口回调给P层,再由P层回调给V层。
LoginActivity —> LoginPresenter —> LoginInteractor—>LoginPresenter—>LoginActivity
LoginInteractor这到底是个什么东西,说白了就是一个接口,项目中是这样的: