一.介紹
模板方法模式(template pattern)。屬於行為型模式。它定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
二.實現
一說到模板,就能想到這是個現有的,可以直接套用的東西。舉個例子,我們去開車,不管開什麼車,步驟都差不多,上車、插鑰匙、踩油門,這就可以定義為乙個模板,我們跟著這個模板去運作就好。這種情況下,可以用模板方法模式去處理。
//抽象模板角色
public
abstract
class
car
public
abstract
void
method1();
public
void
method2()
public
void
method3()
}//具體模板角色
public
class
truck : car}//
具體模板角色
public
class
bus : car}//
呼叫public
static
void main(string
args)
在上面實現中,具體子類重寫了其中的方法,不難理解,因為模板也不能完全套用,具體實現時需要不同的操作。
三.總結
優點:1.實現了**復用。
2.能夠靈活地應對子步驟的變化,符合開閉原則。
缺點:1.因為引入了乙個抽象類,如果具體實現過多的話,需要使用者花更多時間去理清類之間的關係。
C 設計模式 模板方法模式
模板方法模式 應用廣泛的模式 一 意圖 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法結構即可重定義該演算法的某些特定步驟。二 作用 三 使用技巧 先抽象出乙個類,寫出一些抽象行為放到子類中實現,寫乙個模板方法,推遲到子類實現。四 特點 優點 不用再抄一...
《C 設計模式》 模板方法模式
模板方法模式 提到模板我們經常會想到簡歷模板 ppt模板等,以簡歷模板為例,不同的人可以使用一樣的簡歷模板,在填充內容時根據自己的名字 工作經歷等填寫自己的內容,從而形成不同的簡歷。在oo中模板方法模式和現實中的模板十分相似,首先要有乙個封裝了不可變部分的抽象類 簡歷的大致結構,都有姓名 性別 年齡...
C 設計模式 模板方法模式
定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。一些方法通用,卻在每乙個子類都重新寫了這一方法。關鍵 在抽象類實現,其他步驟在子類實現。優點缺點 封裝不變的部分,擴充套件可變部分 每乙個不同的實現都需要乙個子類來實現,導致類...