MVP
2017-09-28 本文已影响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