模板方法模式
模板方法模式:在一个抽象类公开定义了执行他的方法模板,他的子类可以按照需要重写方法实现,但调用将以抽象类中定义的方法进行。
模板方法的UML类图
模板方法的简单实现
Cofee类:
public abstract class Coffee {
public void templateMethod(){
prepare();
add();
make();
}
public void prepare(){
System.out.println("准备材料");
}
public abstract void add();
public void make(){
System.out.println("制作成功");
}
}
CoffeeMilk类:
public class CoffeeMilk extends Coffee {
public void add() {
System.out.println("加入牛奶");
}
}
测试类:
public class Test {
public static void main(String[] args) {
Coffee coffeeMilk = new CoffeeMilk();
coffeeMilk.templateMethod();
//准备材料
//加入牛奶
//制作成功
}
}
总结
基本思想:算法只存在于一个地方,也就是在父类中,容易修改。需要修改算法时,只需要修改父类的模板方法,子类就会继承这些修改。实现了最大化代码复用,提供了很大灵活性。