模版方法模式:在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模版方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。
對模版方法進行掛鉤:鉤子是一種被宣告在抽象類中的方法,但只有空的或者預設的實現。鉤子的存在,可以讓子類有能力對演算法的不同點進行掛鉤。要不要掛鉤,由子類自行決定。
學習要點:
①「模版方法」定義了演算法的步驟,把這些步驟的實現延遲到子類
②模版方法模式為我們提供了一種**復用的重要技巧
③模版方法的抽象類可以定義具體方法,抽象方法和鉤子
④抽象方法由子類實現
⑤鉤子是一種方法,它在抽象類中不做事,或者只做預設的事情,子類可以選擇要不要去覆蓋它
⑥為了防止子類改變模版方法中的演算法,可以將模版方法宣告為final
⑦將決策權放在高層模組中,以便決定如何以及何時呼叫低層模組
⑧策略模式和模版方法模式都封裝演算法,乙個用組合,乙個用繼承
⑨工廠方法是模版方法的一種特殊版本
設計模式 模版方法模式
模版方法模式說明 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模版方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模版方法模式就是提供了乙個很好的 復用平台,是通過把不變行為搬移到超類,去除子類的重複 來體現它的優勢。下面直接看此模式的簡單模版 抽象模版,定義並實...
設計模式 模版方法模式
模版方法模式 定義一下操作中的演算法骨架,而將一些步驟延遲到子類中。模版方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模版方法模式結構圖 abstractclass是抽象類,其實也就是一抽象模版,定義並實現了乙個模版方法。這個模版方法一般是乙個具體方法,它給出了乙個頂級邏輯...
設計模式 模版方法
設計模式 模版方法 場景小張的團隊最近接受乙個需求,實現實現一家咖啡店的沖泡咖啡和茶的沖泡自動化。之前這家咖啡店都是由咖啡師傅手動進行調製咖啡和茶。現在咖啡店需要引入自動化的點單和調製飲料的系統,小張負責實現調製飲料的功能。咖啡師傅手工沖泡咖啡和茶的流程 沖泡咖啡 把水煮沸 用沸水沖泡咖啡 把咖啡倒...