2019-04-23设计模式-模板模式
2019-04-23 本文已影响0人
猫KK
定义一个算法步骤,并允许子类为一个或多个步骤提供实现
其中在android中的表现为Activity,给你定义了Activity的各个生命周期,就相当定义了一个算法的步骤;在子类,也就是我们自己的Activity中,可以实现一个或多个生命周期。下面以BaseActivity为例:定义BaseActivity的算法步骤
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
initView();
initDate();
}
protected abstract int getLayoutId();
protected abstract void initView();
protected abstract void initDate();
}
在onCreate方法中我们定义了一个算法的步骤即:执行getLayoutId()获取ID、执行initView()初始化控件、执行initDate()初始化数据。每一个继承BaseActivity的子类都需要遵守这一个步骤,并且不同的子类通过实现对应的步骤得到不同的内容。例如LoginActivity:
public class LoginActivity extends BaseActivity {
@Override
protected int getLayoutId() {
return R.layout.activity_login;
}
@Override
protected void initView() {
//做一些初始化控件的操作
}
@Override
protected void initDate() {
//做一些初始化数据的操作
}
}
通过实现 getLayoutId() 返回不同的ID,得到不同的界面展示内容;initView() 则做不同界面的初始化操作;initDate() 则做不同界面数据的初始化操作。
小总结
模版模式,其实就是定义一个模版,然后继承该模版,实现其中的方法步骤,从而得到不同的内容`