模板方法模式:在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。
package h_TemplateMethodPattern; public abstract class CaffeineBeverage { final void prepareRecipe() { boilWater(); brew(); pourInCup(); addCondiments(); } abstract void brew(); abstract void addCondiments(); void boilWater() { System.out.println("Boiling water"); } void pourInCup() { System.out.println("Pouring into cup"); } } //---------------------- package h_TemplateMethodPattern; public class Coffee extends CaffeineBeverage { @Override void brew() { System.out.println("Dripping Coffee through filter."); } @Override void addCondiments() { System.out.println("Adding Sugar and Milk"); } } //---------------------- package h_TemplateMethodPattern; public class Tea extends CaffeineBeverage { @Override void brew() { System.out.println("Stepping the tea"); } @Override void addCondiments() { System.out.println("Adding Lemon"); } } //---------------------- package h_TemplateMethodPattern; public class TestDemo { public static void main(String[] args) { Tea tea = new Tea(); tea.prepareRecipe(); System.out.println("--------------------------"); Coffee coffee = new Coffee(); coffee.prepareRecipe(); } }
***