MVP

2017-09-28  本文已影响0人  毕加森
View
/**
 * V层接口
 */
public interface V_Interface {
    void vMethod(Object responseData);// 响应数据
    void vMethodShowProgress();// 显示加载框
    void vMethodDisProgress();// 隐藏加载框
}
/**
 * V层实现(实现V层接口)
 */
public class V_Activity extends Activity implements V_Interface {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // TODO 1.1 发起请求(请求参数)
        P4V_Interface p = new P_Class(this);
        p.p4vMethod(this, "请求参数");
    }

    @Override
    public void vMethod(Object responseData) {
        // TODO 3.3 请求响应(响应数据)
    }

    @Override
    public void vMethodShowProgress() {
        // 显示加载框
    }

    @Override
    public void vMethodDisProgress() {
        // 隐藏加载框
    }
}
Presenter
/**
 * P层提供给V层的接口
 */
public interface P4V_Interface {
    void p4vMethod(Context context, Object requestParam);// 请求参数
}
/**
 * P层提供给M层的接口
 */
public interface P4M_Interface {
    void p4mMethod(Object responseData);// 响应数据
}
/**
 * P层实现(实现P层接口)
 * V与M的中间人
 * V -> P -> M -> P -> V
 */
public class P_Class implements P4V_Interface, P4M_Interface {

    private V_Interface v;
    private M4P_Interface m;
    public P_Class(V_Interface v){
        this.v = v;
        m = new M_Class(this);
    }

    @Override
    public void p4vMethod(Context context, Object requestParam) {
        // 显示加载框
        v.vMethodShowProgress();
        // TODO 1.2 发起请求(请求参数)
        m.m4pMethod(context, requestParam);
    }

    @Override
    public void p4mMethod(Object responseData) {
        // TODO 3.2 请求响应(响应数据)
        v.vMethod(responseData);
        // 隐藏加载框
        v.vMethodDisProgress();
    }
}
Model
/**
 * M层提供给P层的接口
 */
public interface M4P_Interface {
    void m4pMethod(Context context, Object requestParam);// 请求参数
}
/**
 * M层实现(实现M层接口)
 * 发起请求及响应请求的操作
 */
public class M_Class implements M4P_Interface {

    private P4M_Interface p4m;
    public M_Class(P4M_Interface p4m) {
        this.p4m = p4m;
    }

    @Override
    public void m4pMethod(Context context, Object requestParam) {
        // TODO 1.3 发起请求(请求参数)
        Object responseData = mRequest(context, requestParam);
        // TODO 3.1 请求响应(响应数据)
        p4m.p4mMethod(responseData);
    }

    /**
     * TODO 2 执行请求并响应数据
     */
    private Object mRequest(Context context, Object requestParam) {
        Object responseData = new Object();
        return responseData;
    }
}
MVP.png
上一篇下一篇

猜你喜欢

热点阅读