Android MVP模式梳理

一直慕名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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容