按我個人理解來說,顧名思義嘛,模板方法模式是和模板有關的,一說到模板我便不自覺就想到抽象類、介面了,那麼模板方法不就是在父類裡定義一些方法,作為乙個模板把這些方法延後到子類中實現嗎?如此一來,子類就得按照父類這個模板來進行一些方法的實現了。說了一堆…感覺還是沒說明白,還是上**吧…
小韋是個初出茅廬的大學生,畢業後進了乙個手機殼加工廠工作…工作乙個月後,他發現工廠生產不同手機殼的工藝流程其實是一樣的,都是先列印摸具、染色、質量檢測,最後包裝。他發現,同樣的工藝流程生產不同手機殼的關鍵就在於具體工藝的不同實現。
手機殼抽象類
public
abstract
class
phoneshell
}
具體的兩款手機殼類public
class
hwphoneshell
extends
phoneshell
@override
public
void
dye(
)@override
public
void
qualitytest()
}
public
class
xmphoneshell
extends
phoneshell
@override
public
void
dye(
)@override
public
void
qualitytest()
}
測試類public
class
woker
}
過了一會,小韋開始琢磨著為什麼要進行統一的工藝流程呢?後來,小韋問了位廠裡的老師傅,老師傅語重心長地答道:「你看啊,這個流水線是不是都是生產手機殼的,而手機殼的生產過程中,有些生產方法是一樣的,有些是不一樣的。為了提公升生產效率,我們就把所有手機殼的生產流程統一起來,這樣我們就只需要改變那些不一樣的工藝就好了。小韋啊,我這樣說你懂了嗎?」小韋似懂非懂的點了點頭。 模板設計模式 PHP設計模式之模板方法模式
模板方法模式,也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重複的動作時,將他們提取出來,放在父類中進行統一的處理,這就是模板方法模式的最簡單通俗的解釋。就像我們平時做專案,每次的專案流程實都差不多,都有調研 開發 測試 部署上線等流程。而具體到每個專案中,這些流...
設計模式之模板方法設計模式
父類抽象出子類共有的方法,子類實現各自不同的業務。總之就是一種行為有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行為模式,啟動 換擋 踩油門。每種型號品牌的車都有共同的行為,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行為的模式,稱之為模板方...
設計模式之模板方法模式
定義 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟 型別 行為類模式 事實上,模板方法是程式設計中乙個經常用到的模式。比如,給定乙個整數陣列,把陣列中的數由大到小順序,然後把排序之後的結果列印出來。這個需求大體可以分為兩部分,...