前言
以前都是对Activity或Fragment进行抽取,封装成BaseActivity或BaseFragment基类。随着Activity或Fragment的增加,往往基类的抽象方法就会越来越来多,但是很多时候它们的抽象方法是一样的。那么其实可以进一步的抽取,封装到一个接口当中。
抽取基类思想
- 父类可以直接加载子类的共同布局
- 父类需要定义子类所有的共同方法
- 父类需要实现子类方法的共同调用逻辑
- 子类必须实现的方法,那么父类应该抽象出来
- 子类有可能重写的方法,那么父类不能写死,应该抽出方法进行默认实现,允许子类重写
BaseActivity
以前的是这样的
public abstract class BaseActivity extends FragmentActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
ButterKnife.bind(this);
initView();
initData();