設計模式之模板方法模式

2021-06-22 16:49:17 字數 686 閱讀 8275

模板方法模式是類的行為模式。準備乙個抽象類,將部分邏輯以具體的方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實心這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法的用意。

模板方法模式需要開發抽象類和具體子類的設計師之間的協作。乙個設計師負責給出乙個演算法的輪廓和骨架,另一些設計師則負責給出這個演算法的各個邏輯步驟。代表這些具體步驟的方法稱做基本方法;將這些基本方法彙總起來的方法叫做模板方法。

抽象模板(abstract template)角色有如下責任:

■  定義了乙個或多個抽象操作,以便讓子類實現。這些抽象操作叫做基本操作,它們是乙個頂級邏輯的組成步驟。

■  定義並實現了乙個模板方法。這個模板方法一般是乙個具體方法,它給出了乙個頂級邏輯的骨架,而邏輯的組成步驟在相應的抽象操作中,推遲到子類實現。頂級邏輯也有可能呼叫一些具體方法。

具體模板(concrete template)角色又如下責任:

■  實現父類所定義的乙個或多個抽象方法,它們是乙個頂級邏輯的組成步驟。

■  每乙個抽象模板角色都可以有任意多個具體模板角色與之對應,而每乙個具體模板角色都可以給出這些抽象方法(也就是頂級邏輯的組成步驟)的不同實現,從而使得頂級邏輯的實現各不相同。

模板設計模式 PHP設計模式之模板方法模式

模板方法模式,也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重複的動作時,將他們提取出來,放在父類中進行統一的處理,這就是模板方法模式的最簡單通俗的解釋。就像我們平時做專案,每次的專案流程實都差不多,都有調研 開發 測試 部署上線等流程。而具體到每個專案中,這些流...

設計模式之模板方法設計模式

父類抽象出子類共有的方法,子類實現各自不同的業務。總之就是一種行為有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行為模式,啟動 換擋 踩油門。每種型號品牌的車都有共同的行為,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行為的模式,稱之為模板方...

設計模式之模板方法模式

定義 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟 型別 行為類模式 事實上,模板方法是程式設計中乙個經常用到的模式。比如,給定乙個整數陣列,把陣列中的數由大到小順序,然後把排序之後的結果列印出來。這個需求大體可以分為兩部分,...