模版方法模式(Template method)
1.定义:定义一个操作中算法的股架,而将一些步骤延迟到子类中
例子: public void runBase() throws Throwable{
setUp();
try{
runTest();
}
finally{
tearDown();
}
}
protected void setUp() throws Exception {}
protected void tearDown() throws Exception{}
注释:这两个方法没有被实现为抽象的方法,而是两个空的方法(钩子方法)。使用钩子方法时,只在有需要时在子类中重写。
3.适用情况:
1)一次性实现一个算法的不变部分,将可变的部分留给子类来实现
2)各子类中公共部分提取出来,并集中到一个公共的父类中避免代码重复
3)如果不希望子类扩展模版方法,只需把模版方法声明成final的。