模板方法( Template Method )模式:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。 Template Method 使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。
適用性:
涉及到的角色:
?? 抽象模板 (Abstract Template) 角色: 1 。定義一個或者多個抽象操作,以便讓子類實現,這些抽象操作叫做基本操作,它們是一個頂級邏輯的組成步驟。 2 。定義并實現一個模板方法,這個模板方法一般是具體方法,它給出了頂級邏輯的骨架,而邏輯的組成步驟在相應的抽象操作中,推遲到子類中實現,頂級邏輯也可能調用一些具體方法。
?? 具體模板 (Concrete Template) 角色:實現父類所定義的一個或多個抽象方法,它是頂級邏輯的的組成步驟。每一個抽象模板角色都可以有任意多個具體模板角色與之相對應,而每一個具體模板角色都可以給出這些抽象方法的不同實現,從而使得頂級邏輯的實現各不相同。一個具體的例子:抽象模板:
具體模板:
?客戶端類: