模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个操作中的算法骨架,将一些步骤延迟到子类中实现。这样可以使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
模板方法模式是一种非常有用的设计模式,它通过定义算法的骨架和延迟执行某些步骤,使得子类可以重新定义特定步骤的实现,同时保持算法的整体结构不变。这样可以提高代码的复用性和扩展性。
示例:
// AbstractClass
public abstract class CoffeeMaker {
public final void makeCoffee() {
boilWater();
brewCoffeeGrinds();
pourInCup();
addCondiments();
}
public void boilWater() {
System.out.println("Boiling water");
}
public void pourInCup() {
System.out.println("Pouring into cup");
}
public abstract void brewCoffeeGrinds();
public abstract void addCondiments();
}
// ConcreteClass
public class MyCoffeeMaker extends CoffeeMaker {
@Override
public void brewCoffeeGrinds() {
System.out.println("Dripping Coffee through filter");
}
@Override
public void addCondiments() {
System.out.println("Adding Sugar and Milk");
}
}
在上面的示例中,CoffeeMaker 是抽象类,定义了制作咖啡的模板方法 makeCoffee(),以及一些具体步骤的默认实现。MyCoffeeMaker 是具体子类,实现了抽象方法来提供特定步骤的具体实现。