設計模式學習之十二 模板方法模式

2021-10-20 22:24:58 字數 831 閱讀 5786

製作豆漿的流程,選材–新增配料—浸泡—豆漿機中打碎

通過不同的配料。可以製作不同口味的豆漿

選材。浸泡,和打碎這幾個步驟對於製作每種口味的豆漿都是一樣的

通過模板方法模式完成

模板方法模式(template method pattern) 又叫模板模式。在乙個抽象類公開定義執行它的方法的模板。它的子類可以按需重寫方法實現。但呼叫將以抽象類中定義的方式進行。

模板方法模式定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構,就可以重定義該演算法的某些特定步驟。

這種型別設計模式屬於行為型模式。

make() 模板方法 可以為final

add 抽象方法 不同子類不同實現

其他方法統一實現

在模板方法模式的父類中,我們可以定義乙個方法,預設不做任何事,子類可以視情況要不要覆蓋,該方法稱為鉤子

例如豆漿需求中,我們希望製作純豆漿。那麼add()就不需要執行了。我們可以定義乙個hook():boolean ,在模板中判斷該方法返回值,為true才執行add()。在純豆漿子類中覆蓋hook().返回false,並且add() 空實現。

abstractclass抽象類:類中實現了模板方法,定義了演算法骨架,具體子類需要去實現其他抽象方法operator1,2,3

concreteclass:抽象模板的子類,實現抽象方法,完成子類特定的演算法。

設計模式之十二模板模式

模式介紹 1 模板方法模式 template method pattern 又叫模板模式 template pattern z 在乙個抽象類公開定義了執行它的方法的模板。它的子類可以按需要重寫方法 實現,但呼叫將以抽象類中定義的方式進行。2 簡單說,模板方法模式 定義乙個操作中的演算法的骨架,而將一...

設計模式學習之模板方法

1.名詞解釋 模板方法 定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中,模板方法可以使子類可以不修改乙個演算法框架的前提下即可重構該方法的某些特定步驟。模板方法通過把不變行為搬到父類,去除子類中的重複 2.示例 模板方法抽象類 package designpattern.templateme...

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

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