View
- View層接口
/**
* V層接口
*/
public interface V_Interface {
void vMethod(Object responseData);// 響應(yīng)數(shù)據(jù)
void vMethodShowProgress();// 顯示加載框
void vMethodDisProgress();// 隱藏加載框
}
- View層實現(xiàn)
/**
* V層實現(xiàn)(實現(xiàn)V層接口)
*/
public class V_Activity extends Activity implements V_Interface {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO 1.1 發(fā)起請求(請求參數(shù))
P4V_Interface p = new P_Class(this);
p.p4vMethod(this, "請求參數(shù)");
}
@Override
public void vMethod(Object responseData) {
// TODO 3.3 請求響應(yīng)(響應(yīng)數(shù)據(jù))
}
@Override
public void vMethodShowProgress() {
// 顯示加載框
}
@Override
public void vMethodDisProgress() {
// 隱藏加載框
}
}
Presenter
- Presenter層接口
/**
* P層提供給V層的接口
*/
public interface P4V_Interface {
void p4vMethod(Context context, Object requestParam);// 請求參數(shù)
}
/**
* P層提供給M層的接口
*/
public interface P4M_Interface {
void p4mMethod(Object responseData);// 響應(yīng)數(shù)據(jù)
}
- Presenter層實現(xiàn)
/**
* P層實現(xiàn)(實現(xiàn)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 發(fā)起請求(請求參數(shù))
m.m4pMethod(context, requestParam);
}
@Override
public void p4mMethod(Object responseData) {
// TODO 3.2 請求響應(yīng)(響應(yīng)數(shù)據(jù))
v.vMethod(responseData);
// 隱藏加載框
v.vMethodDisProgress();
}
}
Model
- Model層接口
/**
* M層提供給P層的接口
*/
public interface M4P_Interface {
void m4pMethod(Context context, Object requestParam);// 請求參數(shù)
}
- Model層實現(xiàn)
/**
* M層實現(xiàn)(實現(xiàn)M層接口)
* 發(fā)起請求及響應(yīng)請求的操作
*/
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 發(fā)起請求(請求參數(shù))
Object responseData = mRequest(context, requestParam);
// TODO 3.1 請求響應(yīng)(響應(yīng)數(shù)據(jù))
p4m.p4mMethod(responseData);
}
/**
* TODO 2 執(zhí)行請求并響應(yīng)數(shù)據(jù)
*/
private Object mRequest(Context context, Object requestParam) {
Object responseData = new Object();
return responseData;
}
}
MVP.png