C 設計模式 模板方法模式

2021-07-09 22:10:30 字數 940 閱讀 1583

模板方法模式:

應用廣泛的模式

一、意圖:

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

二、作用:

三、使用技巧:

先抽象出乙個類,寫出一些抽象行為放到子類中實現,寫乙個模板方法,推遲到子類實現。

四、特點:

優點:

不用再抄一遍題了。

五、應用:

1、模板方法結構圖:

2、**呼叫:

//定義抽象類

public abstract class employee

protected abstract void getbasicsalary();//抽象行為,放到子類中實現

protected abstract void addbonus();//抽象行為,放到子類中實現

}//接著分別實現經理和ceo的薪資

public class manager : employee

protected override void addbonus()

}public class ceo : employee

}

3、適用場景:

當我們要完成某一細節層次一致的乙個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時,我們通常考慮用模板方法模式來處理。

六、總結:

謝謝交流!

《C 設計模式》 模板方法模式

模板方法模式 提到模板我們經常會想到簡歷模板 ppt模板等,以簡歷模板為例,不同的人可以使用一樣的簡歷模板,在填充內容時根據自己的名字 工作經歷等填寫自己的內容,從而形成不同的簡歷。在oo中模板方法模式和現實中的模板十分相似,首先要有乙個封裝了不可變部分的抽象類 簡歷的大致結構,都有姓名 性別 年齡...

C 設計模式 模板方法模式

定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。一些方法通用,卻在每乙個子類都重新寫了這一方法。關鍵 在抽象類實現,其他步驟在子類實現。優點缺點 封裝不變的部分,擴充套件可變部分 每乙個不同的實現都需要乙個子類來實現,導致類...

C 設計模式 模板方法模式

模板方法 定義乙個操作中的演算法骨架 穩定 而將一些步驟延遲到子類中實現。模板方法使得子類可以再不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟 變化 通過把不變的行為搬移到基類中,去除了子類的重複 提供了乙個很好的 復用解決方案。libary類 class libary private v...