项目源码:todo-mvp
1.APP结构
2.主要功能模块
以上为四个主要功能模块,每个功能模块包含Activity/Fragment/Contract/Presenter。
3.项目结构
项目结构
BasePresenter作为基础类只简单定义了一个方法。
public interface BasePresenter { void start();}
嗯,BaseView也是:
public interface BaseView<T> { void setPresenter(T presenter);}
4.结构分析
以主页模块为例:
logic.png
红色C表示类,红色I表示接口,黑线表示变量映射
TasksActivity
Activity中有作为V层的Fragment,和作为P层的Presenter对象。
TasksFragment
通过setPresenter(T presenter)
方法链接Presenter对象。使用Presenter处理事件。
TasksPresenter
持有View(mTasksView)对象和Model对象(mTasksRepository),通过mTasksRepository(M层)与数据层交流,完成之后通过mTasksView调用方法改变UI。
TasksContract
重点,里面定义了两个接口,分别是View(继承BaseView)和Presenter(继承BasePresenter)。TasksFragment实现了其中的View接口,TasksPresenter实现了其中的Presenter接口。
TasksRepository
用于接收和处理数据,该类包含一个(伪)远程数据处理对象和本地数据处理对象。
网友评论