模板方法模式——在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。
package pattern;
public class Template {
public static void main(String[] args) {
SomeCoffee tea = new SomeCoffee();
tea.prepareRecipe();
}
}
// 步驟 1
// 創建一個抽象類,它的模板方法被設置爲 final。
abstract class SomeBeverage{
public final void prepareRecipe(){
boilWater();
brew();
pourInCup();
addCondiments();
}
public void boilWater(){
System.out.println("燒水");
}
public abstract void brew();
public void pourInCup(){
System.out.println("倒進杯子");
}
public abstract void addCondiments();
}
// 步驟 2
// 創建擴展了上述類的實體類。
class Tea extends SomeBeverage{
public void brew(){
System.out.println("加茶葉");
}
public void addCondiments(){
System.out.println("加檸檬");
}
}
class SomeCoffee extends SomeBeverage{
public void brew(){
System.out.println("加咖啡因");
}
public void addCondiments(){
System.out.println("加牛奶");
}
}