模板方法模式------行為型設計模式
定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
模板方法模式(template method pattern)實際上是封裝了乙個固定流程,該流程由幾個步驟組成,具體步驟可以由子類進行不同實現,從而讓固定的流程產生不同的結果。
模板方法模式非常簡單,其實就是類的繼承機制,但它卻是乙個應用非常廣泛的模式。
模板方法模式本質:抽象封裝流程,具體進行實現
主要解決
當完成乙個操作具有固定的流程時,由抽象固定流程步驟,具體步驟交給子類進行具體實現(固定的流程,不同的實現)。
優點
缺點
uml圖
從 uml 類圖中,我們可以看到,模板方法模式 主要包含兩種角色:
//**
/*** * 抽象模板類:定義炒菜流程 */
public
abstract
class
cookvegetable
protected
void
pouroil()
protected
void
fry()
//具體調料由菜決定
protected
abstract
void
poursauce();
//具體炒菜流程
public
final
void
cook()
}
/*** 炒豆芽
* */
public
class cookbeansprout extends
cookvegetable
@override
protected
void
fry()
@override
protected
void
poursauce()
}
/**執行* 炒茄子
* */
public
class cookeggplant extends
cookvegetable
@override
protected
void
pouroil()
@override
protected
void
poursauce()
}
publicclass
client
}
24種設計模式學習筆記之組合模式
組合模式 composite pattern 結構型設計模式 也稱為 整體 部分 part whole 模式,它的宗旨是通過將單個物件 葉子節點 和組合物件 樹枝節點 用相同的介面進行表示,使得客戶對單個物件和組合物件的使用具有一致性。組合模式 一般用來描述 整體 與 部分 的關係,它將物件組織到樹...
24種設計模式學習筆記之策略模式
策略模式 strategy 行為型設計模式 定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。cashsuper 收費計算策略抽象類正常收費類 正常收費。acceptcash 辦法 直接返回金額 打折收費類 需要在構造器中初始化打折引數 在ac...
24種設計模式 模板方法模式
定義乙個操作中的演算法的骨架,而將步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義演算法的某些特定步驟。擴充套件 run 方法可以按照規定的順序執行,也可以由isalarm 方法的返回值影響run 中的執行順序。模板模式通過定義模板方法抽象類 包含節點方法和執行流程方法兩部分 由具體類...