c 設計模式 模版模式

2022-08-05 08:57:17 字數 630 閱讀 8795

模版模式和外觀模式有點類似,都是將流程封裝起來。但是兩者的實現方式和側重點不太一樣。

外觀模式實現的是多各類協作共同完成一件事情,因此我們使用乙個函式來封裝這些操作,(將這個函式放在乙個類中)。

模板模式實現的是乙個類的多個函式組合完成一件事情。定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變演算法的結構即可重定義該演算法的某些特定步驟。

以做飯為例,不管中餐還是西餐,做飯的步驟都是,一準備好食材,二下鍋,三洗碗

class cooking

virtual void preparematerial() = 0; //準備原材料

virtual void cook() = 0; //做飯

virtual void washdishes() = 0; //洗碗

設計模式 模版模式

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

設計模式之模版模式

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

設計模式之 模版模式

在我們平時的編碼工作中,經常會有一些流程步驟基本相同,只是中間有部分細節不同的業務流程,比如我們自己要實現乙個基於redis快取的模版方法,在redis中存在指定值時,則返回redis中快取的資料 如果redis中不存在,則查詢db,並把查詢所得快取起來,並返回查詢所得。這個例子就是用模版模式再好不...