建一个大接口
//V层
public interface LView{
//刷新数据
//同时有两个板块要请求数据的话 写两个
public void showData(GridBean gridBean);
public void showData(RecyBean recyBean);
}
//P层
public interface LPresent<LView>{
//绑定
public void attachView(LConstract.LView lView);
//解绑
public void dattach(LConstract.LView lView);
//请求数据
public void requestData(String GRIDURL, String RECYURL);
}
//M层
public interface LModel{
public void reponseData(CallBack callBack);
public interface CallBack{
//同时有两个板块要请求数据的话 写两个
public void oncallback(GridBean gridBean);
public void oncallback(RecyBean recyBean);
}
}
继承V层
implements LConstract.LView 实现方法
//p层对象
present = new LPresentlmpl();
present.attachView(this);
present.requestData(Contant.GRIDURL,Contant.RECYURL);
继承P层
implements LConstract.LPresent 实现方法
attachView里
this.lView=lView;
//软引用包裹
reference = new SoftReference<>(lView);
//m层对象
model = new Lmodellmpl();
@Override
public void dattach(LConstract.LView lView) {
reference.clear();
}
@Override
public void requestData(String gridurl, String GRIDURL) {
model.reponseData(new LConstract.LModel.CallBack() {
@Override
public void oncallback(GridBean gridBean) {
lView.showData(gridBean);
}
@Override
public void oncallback(RecyBean recyBean) {
lView.showData(recyBean);
}
});
}
继承M层
implements LConstract.LModel 实现方法
@Override
public void reponseData(final CallBack callBack) {
OkGo.<String>get(Contant.GRIDURL).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String s = response.body().toString();
//解析
Gson gson=new Gson();
GridBean gridBean = gson.fromJson(s, GridBean.class);
//回
callBack.oncallback(gridBean);
}
});