## 一、模板方法
定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。
特點:模板方法時通過吧不變的行為搬移到超類,去除子類中的重復代碼來體現它的優勢。它提供了一個很好的代碼復用平臺。
適用范圍:當不變的和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重復出現。這時候就可以考慮用模板方法吧這些行為搬移到單一的地方,這樣就幫助子類擺脫重復的不變行為的糾纏了。
例子:以前老師給學生考試,沒錢,沒有印刷機,只好把題目寫在黑板上,然后全班同學在下面抄寫,有時候,老是不小心寫錯了,全班同學跟著都得修改,不光這些,有的同學近視,經常抄錯,這就導致答案也錯。學生是一邊抄一一邊做題,抄完了,也答完了。
后來學校有錢了,買了印刷機,老師刻好模板,訂正后,在復印卷子,這樣學生省去了抄題目的麻煩,同時大家都是一樣的卷子,不會再有抄錯的情況。學生只需要把自己認為對的答案填上,交卷子即可。
這個考試分布進行的,首先是老師來刻模板,印卷子,把填寫答案這步留給學生來實現。
模板方法有木有?
## 二、類圖

在模板方法中,一般是父類中TemplateMethod方法中包含抽象方法PrimitiveOperation,而PrimitiveOperation方法在子類中通過多態來實現,這就完成了對算法局部的重定義。
- 前言
- 抽象工廠——創建型設計模式一
- 工廠三姐妹——創建型設計模式之二
- 初識面向對象設計模式
- 建造者模式——創建型模式之三
- 原型模式——創建型設計模式四
- 適配器 and 組合模式——結構性模式之一
- 橋接模式——結構性設計模式之二
- 組合模式——結構型設計模式之三
- 裝飾模式——結構型設計模式之四
- 外觀模式——結構型設計模式之五
- 代理模式——結構型設計模式之六
- 觀察者模式——行為型設計模式之五
- 模板設計——行為設計模式之一
- 命令模式——行為設計模式之二
- 狀態模式——行為型設計模式之三
- 職責模式——行為設計模式之四
- 中介模式——行為模式之六
- 策略+簡單工廠 實戰篇
- 看觀察者怎么全方位觀察機房收費系統
- 登陸也需要裝飾——機房收費系統裝飾模式實戰
- 何為抽象?你有本末倒置嗎?
- 再回首,策略、簡單工廠是否依然?
- 再回首——行為型設計模式