模板模式(Template Method Pattern)是一种行为设计模式,它通过定义一个算法的骨架,允许子类在不改变算法结构的情况下重写某些步骤。就像做菜的食谱:
抽象类:菜谱模板(固定步骤:准备→烹饪→摆盘)
具体类:具体菜品(实现煎、炒、烤等差异步骤)
假设需要实现不同咖啡的制作流程:
美式咖啡:研磨→冲泡→加糖
拿铁咖啡:研磨→冲泡→加奶泡
浓缩咖啡:研磨→高压萃取
// 存在大量重复代码 class AmericanCoffee { void makeCoffee() { grind(); brew(); addSugar(); } } class LatteCoffee { void makeCoffee() { grind(); brew(); addMilkFoam(); } }
步骤1:定义抽象模板类
public abstract class CoffeeMaker { // 模板方法(final防止子类重写) public final void makeCoffee() { grindBeans(); brew(); addCondiments(); hook(); // 钩子方法 } private void grindBeans() { System.out.println("研磨咖啡豆"); } protected abstract void brew(); protected abstract vo