MVP

作者: 毕加森 | 来源:发表于2017-09-28 16:43 被阅读0次
    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

    相关文章

      网友评论

          本文标题:MVP

          本文链接:https://www.haomeiwen.com/subject/fdlmextx.html