模板模式:核心思想是在超類中將完成核心功能的方法宣告為抽象方法,留給子類去實現,而在超類中完成一些通用操作.
大概的步驟是:在超類中定義乙個演算法的框架,將這個演算法中的某個或者某些步驟抽象為方法交給子類去實現。
模板模式的主要組成可以是具體的方法、抽象方法和鉤子方法(鉤子是一種方法,他在抽象類中不做事或只做預設的事,子類可以選擇要不要實現它)
我們使用沖泡咖啡和沖泡茶的例子(**:[url]
加工流程:
咖啡沖泡法:1.把水煮沸、2.用沸水沖泡咖啡、3.把咖啡倒進杯子、4.加糖和牛奶
茶沖泡法: 1.把水煮沸、2.用沸水沖泡茶葉、3.把 茶 倒進杯子、4.加蜂蜜
第一步:建立乙個模板類(抽象類):beverage(飲料)
package com.demo.cyd.action;
/*** 這是乙個模板類:定義了beverage的自作方法.
* 為了防止模板方法被修改,可以設定為final
* @author lenovo**/
public abstract class beverage
public abstract void addcoundiments();
public abstract void brew();
public void boilwater()
public void pourincup()
//為抽象類設定乙個鉤子方法.以便必要的時候做一些控制.
public void hook()
}package com.demo.cyd.action;
/*** 利用模板模式製作咖啡.
* @author lenovo**/
public class coffee extends beverage
@override
public void brew()
}package com.demo.cyd.action;
/*** 利用模板模式製作茶
* @author lenovo**/
public class tea extends beverage
@override
public void brew()
}//測試
public static void main(string args)
測試結果:
先將煮開水...
用水衝咖啡...
倒進杯子...
加入糖和牛奶...
********************
先將煮開水...
用水沖茶...
倒進杯子...
加入蜂蜜...
模板設計模式 設計模式之模板模式
模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。模板模式主要解決將通用的演算法抽象起來,同樣的 邏輯出現了重複,就可以使用模板模式進行重構。關鍵 在抽象類實現,其他步驟在子類實現...
設計模式之模板設計模式
模板方法模式,定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟。模板方法模式是通過把不變行為搬到超類,去除子類中的重複 來體現它的優勢。當不變和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複...
設計模式之模板設計模式
在父類中定義好演算法的骨架,然後在子類中去實現。總的來說就是父類中定義需要實現的總方法,然後在子類中去依次實現它 當然根據物件的不同,所實現的具體細節不同。下面來看乙個例子 在父類中我們定義三個抽象的方法job 在子類中去實現它。子類中執行execute方法 job1 如果當前時間能整除2 則執行j...