定义
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
代码demo
模板类
public abstract class CaffeineBeverage {
final void prepareRecipe(){
bollWater();
brew();
pourInCut();
addCondiments();
}
abstract void brew();
abstract void addCondiments();
void bollWater(){
System.out.println("boil water");
}
void pourInCut(){
System.out.println("pour in cup");
}
}
子实现类
public class Coffee extends CaffeineBeverage{
@Override
void brew() {
System.out.println("brow caffee");
}
@Override
void addCondiments() {
System.out.println("add caffee condinents");
}
}
public class Tea extends CaffeineBeverage{
@Override
void brew() {
System.out.println("brow tea");
}
@Override
void addCondiments() {
System.out.println("add tea condiments");
}
}
单元测试
public class UnitTest {
public static void main(String[] args) {
CaffeineBeverage c1 = new Tea();
CaffeineBeverage c2 = new Coffee();
c1.prepareRecipe();
c2.prepareRecipe();
}
}