一、引言
Smile项目是我自己的一个练习项目,对自己这一年多工作的一个总结。同样这个项目参考了许多APP,有些甚至是原封不动照搬的,我将链接出源项目地址,对这些照搬的项目只是自己觉得好的地方记录想来,并加入注释,看别人的代码也是一种学习嘛。今后我希望服务端的代码也能够由自己来完成。
二、项目结构
1.api----->请求地址接口,网络框架采用的Retrofit2.0
2.appexception------>自定义的异常类
3.config--------->一些配置,包括工具类都放在里面
4.mvp——------>模仿公司的mvp架构
5.googlemvp------>模仿googlemvp进行的实践
6.其他的包都是按照业务进行的划分
Paste_Image.png
三、MVP架构的理解
我觉得MVP就是就是一种接口回调的思想,它将业务模块和业务进行分离,使业务逻辑不在和页面进行混淆。网上有许多讲解mvp思想文章:
https://segmentfault.com/a/1190000003927200
//www.greatytc.com/p/9a6845b26856
简单的拿我的例子说明一下googlemvp的思路:
1.首先有两个Base类,一个是BaseView:
负责注入Presenter对象:
Paste_Image.png
2.BasePresenter:
start方法负责一些需要预加载的任务
Paste_Image.png
3.契约类
针对不同的业务需要不同的契约接口:它将Presenter层和View层进行关联,在同一个接口中维护起来也很方便
Paste_Image.png
4.在Presenter的构造方法中注入Presenter对象。
在new Presenter时,同时给createPresenter方法注入presenter对象,这样页面就可以拿到presenter对象了。至于什么时候new一个paresnter对象呢?如果是activity,在onCreate方法中实例化一下,如果是fragment,在负责管理这个fragment中实例化。
Paste_Image.png
拿到presenter
实例化presenter