抽基类

//接口

public interface IView {
    Context context();
}



//BasePresenter

public abstract class BasePresenter<V extends IView> {
    protected V view;
    public BasePresenter(V view){
        this.view=view;
        initModel();
    }

    protected abstract void initModel();
    void onDestroy(){
        view=null;
    }
}



//BaseActivity

public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity{
    protected P presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(provideLayoutId());
        initViews();
        initListener();
        presenter=providePresenter();
        initDatas();
    }

    protected abstract P providePresenter();

    protected abstract int provideLayoutId();

    protected abstract void initDatas();

    protected abstract void initListener();

    protected abstract void initViews();

    @Override
    protected void onDestroy() {
        presenter.onDestroy();
        super.onDestroy();
    }
}

猜你喜欢

转载自blog.csdn.net/aa15362415/article/details/80725608