Google samples-TODO-MVP解析

项目源码:todo-mvp

1.APP结构

Google samples-TODO-MVP解析_第1张图片

2.主要功能模块

Google samples-TODO-MVP解析_第2张图片

以上为四个主要功能模块,每个功能模块包含Activity/Fragment/Contract/Presenter。

3.项目结构

Google samples-TODO-MVP解析_第3张图片

项目结构

BasePresenter作为基础类只简单定义了一个方法。

public interface BasePresenter {    void start();}

嗯,BaseView也是:

public interface BaseView {    void setPresenter(T presenter);}

4.结构分析

以主页模块为例:


Google samples-TODO-MVP解析_第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

用于接收和处理数据,该类包含一个(伪)远程数据处理对象和本地数据处理对象。

你可能感兴趣的:(Google samples-TODO-MVP解析)