设计模式-模板设计模式

定义:

完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。(实质就是继承的思想)

代码

public abstract class BaseActivity extends AppCompatActivity {
    protected Context mContext;
    protected Unbinder unbinder;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        setContentView(setContentView());
        unbinder = ButterKnife.bind(this);
        initView();
        initData();
    }

    /**
     * 设置布局
     */
    protected abstract int setContentView();

    /**
     * 启动activity
     *
     * @param clazz
     */
    protected void startActivity(Class clazz) {
        Intent intent = new Intent(this, clazz);
        startActivity(intent);
        overridePendingTransition(R.anim.alpha_enter, R.anim.alpha_exit);
    }

    /**
     * 初始化布局
     */
    protected abstract void initView();

    /**
     * 初始化数据
     */
    protected abstract void initData();


    @Override
    public void onBackPressed() {
        back();
    }

    /**
     * 返回
     */
    protected void back() {
        finish();
        overridePendingTransition(R.anim.alpha_enter, R.anim.alpha_exit);
    }

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

源码中的应用

AsyncTask

你可能感兴趣的:(设计模式-模板设计模式)