理解 todo-mvp-clean

1、两个Base接口类

public interface BaseView {//规定view中必须实现setPresenter()方法,保持引用presenter
    void setPresenter(T presenter);

}
public interface BasePresenter {//presenter必须实现start方法
    void start();
}
该方法的作用是Presenter开始获取数据并调用View的方法来刷新界面,其调用时机是在Fragment类的onResume方法中。

2、定义了Contract(整合接口)

使用时为了减少类文件数目,可以写一个Contract接口来统一管理每一层的接口

public interface TaskDetailContract {
    interface View extends BaseView {
        void setLoadingIndicator(boolean active);
        void showMissingTask();
        void hideTitle();
        void showTitle(String title);
        void hideDescription();
        void showDescription(String description);
        void showCompletionStatus(boolean complete);
        void showEditTask(String taskId);
        void showTaskDeleted();
        void showTaskMarkedComplete();
        void showTaskMarkedActive();
        boolean isActive();
    }
    interface Presenter extends BasePresenter {
        void editTask();
        void deleteTask();
        void completeTask();
        void activateTask();
    }
}
TaskDetailContract中的View接口定义了该界面(功能)中所有的UI状态情况
Presenter 接口则定义了该界面(功能)中所有的用户操作事件

3、Activity在mvp中的作用

Activity在项目中是一个全局的控制者,负责创建view以及presenter实例,并将二者联系起来。TaskDetailActivity 的onCreate()回调中创建TaskDetailPresenter 实例,TaskDetailPresenter 的构造函数中实现了View和Presenter的关联。

4、Model层

该项目中Model层最大的特点是被赋予了数据获取的职责,与我们平常Model层只定义实体对象截然不同。实例中,数据的获取、存储、数据状态变化都是Model层的任务,Presenter会根据需要调用该层的数据处理逻辑并在需要时将回调传入。
..................是不是写的太简单粗暴了。。。。。。。。。。。


你可能感兴趣的:(理解 todo-mvp-clean)