美文网首页
Android MVP模式梳理

Android MVP模式梳理

作者: itstrongs | 来源:发表于2017-09-26 12:10 被阅读12次

    一直慕名Android的MVP模式没时间去研究,今天就好好记录一下我所理解的MVP模式。

    看别人写的源码是最好的学习方法。

    这次看的是谷歌的官方示例项目:https://github.com/googlesamples/android-architecture

    整体的结构如下:


    WX20170926-114034@2x.png

    这个例子主要是做了一个tudo项目,把整体模块分成了四块:tudo主模块、tudo详情模块、统计模块、添加tudo模块。

    项目首先定义了View和Presenter的基类作为所有模块通用的类,然后每个模块定义了一个契约类Contract来定义每个模块View和Presenter要处理的事务接口。

    每个模块先由Activity创建继承自契约类Contract的View接口的fragment作为MVP的View处理UI业务,然后创建继承自契约类Contract的Presenter类把fragment传入,通过基类View的setPresenter方法将View和Presenter绑定在一起。UI初始化在fragment中实现,逻辑入口在Presenter的start方法中开始,fragment中的逻辑部分只需要调用相应的Presenter接口,Presenter中的UI操作也只需要调用相应的View接口,从而实现UI和逻辑代码的分离。

    我想起我之前做的一个项目,也是有这种分离的想法,当时主要有两个模块,登录和支付,于是我创建了两个单例类、两个Activity和几十个fragment,以此来做到View和业务的分离以及View和View之间的分离。其实我当时如果有MVP的思维模式我应该创建2个Presenter,分别对应两个Activity的UI逻辑,创建2个Model分别对应登录和支付模块,多个View接口对应fragment。

    相关文章

      网友评论

          本文标题:Android MVP模式梳理

          本文链接:https://www.haomeiwen.com/subject/sqlsextx.html