定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法仅仅使用了继承机制,抽象模板的方法分为两类,
1.基本方法 子类需要实现的方法,并且在子类方法中被调用
2.模板方法 可以有一个或几个 一般是一个具体方法,
public abstract class BaseActivity extends Activity {
@Override
protected final void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(isNoTitle()){
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
setContentLayoutId();
initView();
}
abstract void setContentLayoutId();
abstract void initView();
protected boolean isNoTitle(){
return true;
}
}public class MainActivity extends BaseActivity {
@Override
void setContentLayoutId() {
setContentView(R.layout.activity_main);
}
@Override
void initView() {
TextView tView = new TextView(this);
}
@Override
protected boolean isNoTitle() {
return false;
}
}其中 isNoTitle 被称为"钩子方法",由它的返回值来决定公共部分的执行结果。
模板方法模式的优点:
封装不变部分,扩展可变部分;
提取公共代码,便于维护;
行为由父类控制,子类实现,符合开闭原则。
本文深入探讨了模板方法模式在软件设计中的应用,阐述了其核心思想,即通过分离算法的基本步骤和可变步骤,实现代码的复用和扩展。文章详细介绍了模式的组成部分,包括基本方法和模板方法,以及如何通过子类实现这些方法。此外,还讨论了模板方法模式的优点,如封装不变部分、提取公共代码、符合开闭原则等。
1700

被折叠的 条评论
为什么被折叠?



