概述:
定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模版方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
角色:1、層次類:這是乙個抽象類,定義了程式的骨架,抽象細節。
2、細節類:繼承抽象類,對細節進行描述,完善程式,擴充套件父類功能。
具體**:
層次類:
publicabstract
class
test
abstract
void head()//
細節一abstract
void details()//
細節二}
細節類:
publicclass
testa extend test
@override
void
details()
}
客戶端:
publicstatic
void
main(string args)
輸出:
這是細節一優點:這是body
這是細節二
1、重複**移到父類,去除了子類**的重複性。
2、通過子類擴充套件父類,體現了開放-封閉原則。
大話設計模式之模版方法模式
模版方法模式 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模版方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的默寫特定步驟。abstrclass定義並實現了乙個模版方法。這個模版方法一般是乙個具體方法,它給出了乙個頂級邏輯的骨架,而邏輯的組成步驟在相應的抽象操作中,推遲到子類實...
大話設計模式閱讀筆記 模版方法模式
模板方法模式 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某一些特定步驟。2.當我們要完成在某一細節層次一致的乙個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時,我們通常考慮模版方法模式來處理。3.模板方法的特...
大話設計模式讀書筆記4 模版方法模式
模板方法是一種常見的設計模式,它定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。uml圖 具體實現 namespace templatemethod public abstract class abstractclass...