MVP

View
  • View层接口
/**
 * V层接口
 */
public interface V_Interface {
    void vMethod(Object responseData);// 响应数据
    void vMethodShowProgress();// 显示加载框
    void vMethodDisProgress();// 隐藏加载框
}
  • View层实现
/**
 * 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
  • Presenter层接口
/**
 * P层提供给V层的接口
 */
public interface P4V_Interface {
    void p4vMethod(Context context, Object requestParam);// 请求参数
}
/**
 * P层提供给M层的接口
 */
public interface P4M_Interface {
    void p4mMethod(Object responseData);// 响应数据
}
  • Presenter层实现
/**
 * 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
  • Model层接口
/**
 * M层提供给P层的接口
 */
public interface M4P_Interface {
    void m4pMethod(Context context, Object requestParam);// 请求参数
}
  • Model层实现
/**
 * 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目前已转至个人博客,本系列地址:Lam's Blog - Knowledge as Action 前言 本文基于周...
    格子林ll阅读 13,108评论 1 76
  • 引言 目前Android开发比较流行的是MVP开发架构,与MVC不同的是把Activity、Fragment等页面...
    OzanShareing阅读 12,911评论 3 21
  • 从MVP开发模式至今,其实已经过了好久;很多开发者也已经轻车熟路的运用到了项目中,本来犹豫要不要写这篇文章,后来发...
    玖玖君阅读 3,550评论 0 0
  • 从MVP开发模式至今,其实已经过了好久;很多开发者也已经轻车熟路的运用到了项目中,本来犹豫要不要写这篇文章,后来发...
    DevCW阅读 9,665评论 31 93
  • 前言 世代在进步,技术在发展,当自己刚换了一份工作的时候,越来越多的听到MVP,那么今天就趁此机会来学习一下MVP...
    CarlosLynn阅读 3,106评论 0 1

友情链接更多精彩内容