模板方法:定義乙個操作中的演算法骨架(穩定),而將一些步驟延遲到子類中實現。模板方法使得子類可以再不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟(變化)。通過把不變的行為搬移到基類中,去除了子類的重複**,提供了乙個很好的**復用解決方案。
libary
類:
class libary
private:
void step1();
void step2();
void step3();
virtual void step4() = 0;
virtual void step5() = 0;
//虛析構
};
子類實現可以變化的step4()
和step5()
:
class libary2 : public libary
;
客戶端:
int main()
C 設計模式 模板方法模式
模板方法模式 應用廣泛的模式 一 意圖 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法結構即可重定義該演算法的某些特定步驟。二 作用 三 使用技巧 先抽象出乙個類,寫出一些抽象行為放到子類中實現,寫乙個模板方法,推遲到子類實現。四 特點 優點 不用再抄一...
《C 設計模式》 模板方法模式
模板方法模式 提到模板我們經常會想到簡歷模板 ppt模板等,以簡歷模板為例,不同的人可以使用一樣的簡歷模板,在填充內容時根據自己的名字 工作經歷等填寫自己的內容,從而形成不同的簡歷。在oo中模板方法模式和現實中的模板十分相似,首先要有乙個封裝了不可變部分的抽象類 簡歷的大致結構,都有姓名 性別 年齡...
C 設計模式 模板方法模式
定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。一些方法通用,卻在每乙個子類都重新寫了這一方法。關鍵 在抽象類實現,其他步驟在子類實現。優點缺點 封裝不變的部分,擴充套件可變部分 每乙個不同的實現都需要乙個子類來實現,導致類...