一、定义
模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架(也就是大致的步骤和流程),而将一些具体步骤的实现延迟到子类中。这样,子类可以不改变算法的结构即可重新定义算法的某些特定步骤。
二、Java示例
举个简单的例子:假设我们要泡一杯茶和一杯咖啡,这两者的制作过程有一些共同的步骤,比如烧水、倒水、搅拌等,但也有不同的地方,比如茶需要放茶叶,而咖啡需要放咖啡粉。
泡茶的过程:
烧水、放茶叶、倒水、搅拌、品尝
泡咖啡的过程:
烧水、放咖啡粉、倒水、搅拌、品尝
我们可以看到,烧水、倒水、搅拌和品尝这些步骤是相同的,而放茶叶和放咖啡粉这两个步骤是不同的。
用模板方法模式来实现:
我们可以定义一个抽象类 Beverage,它包含一个模板方法 prepareRecipe,这个方法定义了整个流程的骨架。然后,我们创建两个子类 Tea 和 Coffee,分别实现具体的步骤。
// 抽象类
abstract class Beverage {
// 模板方法,定义算法骨架
public final void prepareRecipe() {
boilWater();
brew();
pourInCup();
addCondiments();
}
// 抽象方法,由子类实现
abstract void brew();
// 抽象方法,由子类实现
abstract void addCondiments();
// 具体方法
void boilWater() {
System.out.println("烧水");
}
// 具体方法
void</