//接口
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(); } }