//接口
public interface IView {
Context context();
}
//P层
public abstract class BasePresenter<V extends IView> {
protected V view;
public BasePresenter(V view) {
this.view = view;
initModel();
}
protected abstract void initModel();
void onDrestroy(){
view=null;
}
}
//V层
public abstract class BaseFragment<P extends BasePresenter> extends Fragment{
protected P presenter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(provideLayoutId(), null);
presenter=providePresenter();
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
initListance();
initData();
}
protected abstract void initData();
protected abstract void initListance();
protected abstract void initView();
protected abstract P providePresenter();
protected abstract int provideLayoutId();
//懒加载
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser){
if (presenter==null){
return;
}else {
noVisible();
}
initData();
}
}
protected void noVisible(){};
@Override
public void onDestroy() {
presenter.onDestroy();
super.onDestroy();
}
}
本文详细介绍了MVP架构模式中的接口定义及其实现原理。通过具体的代码示例展示了IView接口的功能,BasePresenter抽象类中Presenter与View的绑定流程,以及BaseFragment中视图与Presenter的初始化过程。
162

被折叠的 条评论
为什么被折叠?



