目录
模板模式(Template Method):
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
举例
关于饮品的制作:
咖啡(一键启动按钮) | 柠檬红茶(一键启动) | 奶茶 | |
步骤1 | 将水烧开 | 将水烧开 | 将水烧开 |
步骤2 | 将咖啡冲泡在水中 | 将茶泡在水中 | |
步骤3 | 泡好的咖啡倒入顾客杯中 | 泡好的茶倒在顾客杯子中 |
|
步骤4 | 加糖和牛奶 | 加柠檬 |
1.一键启动按钮:即用这个方法,四个步骤直接就完了,饮料就直接出来了,并且这个方法不允许修改,子类只能使用不能修改。
2.当直接创建两个饮品类单独实现咖啡和红茶两个代码时存在问题:
观察代码:
public class Coffee {
//一键启动按钮,点击能出一杯咖啡(包含所有制作流程)
public void prepareRecipe(){
boilWater();//烧水
brewCoffeeBag();//泡咖啡
pourIncup();//泡好的咖啡倒入杯中
addSugarAndMilk();//加入糖和奶
}
private void addSugarAndMilk() {