模板方法模式在一個(gè)方法中定義了一個(gè)算法的骨架炮叶,而將一些步驟延遲到子類(lèi)中逊彭。
模板方法使得子類(lèi)可以在不改變算法結(jié)構(gòu)的情況下,重新定義算法中的某些步驟识虚。
實(shí)例解析:
有些人喜歡咖啡檐束,有些人喜歡茶。茶和咖啡的沖泡方式如下:
星巴茲咖啡沖泡法
把水煮沸
用沸水沖泡咖啡
把咖啡倒進(jìn)杯子
加糖和牛奶
星巴茲茶沖泡法
把水煮沸
用沸水沖泡茶葉
把茶倒進(jìn)杯子
加檸檬
試通過(guò)代碼實(shí)現(xiàn)般码。
下面為模板方法模式設(shè)計(jì):
Paste_Image.png
主函數(shù)代碼:
public class Test {
public static void main(String[] args) {
Tea tea = new Tea();
tea.prepareRecipe();
Coffee coffee = new Coffee();
coffee.prepareRecipe();
}
}
設(shè)計(jì)原則
- 好萊塢原則:別調(diào)用(打電話給)我們妻率,我們會(huì)調(diào)用(打電話給)你。即:高層組件對(duì)待低層組件的方式是“別調(diào)用我們侈询,我們會(huì)調(diào)用你”舌涨。