重學設計模式 - Template Method模式

1、TemplateMethod模式簡介

Template Method是一個旨在幫助我們在抽象層次從一組不同的步驟中概括出一個通用過程的模式。《設計模式》一書中對Template Method模式的意圖數這樣的:定義一個操作中算法的骨架,而將一些步驟延遲到子類中。不改變算法的結構而重定義它的步驟。

Template Method模式適用於存在幾個互不相同但概念上相似的過程。每個過程的變化是互相耦合的,因爲它們都與某個過程相關。

 

2、TemplateMethod模式關鍵特徵

 

意圖

定義一個操作中算法的骨架,而將一些步驟延遲到子類中。不改變算法的結構而重定義它的步驟。

問題

要完成在某一細節層次一致的一個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同。

解決方案

允許定義可變的子步驟,同時保持基本過程的一致。

參與者與協作者

Template Method模式由一個抽象類組成,這個抽象類定義了需要覆蓋的基本TemplateMethod方法。每個從這個抽象類派生的具體類將爲此模板實現新方法。

效果

模板提供了一個很好的代碼複用平臺。它還有助於確保所需步驟的實現。它將每個Concrete類的覆蓋步驟綁定起來,因此只有在這些變化總是並且只能一起發生時,才應該使用Template Method模式。

實現

創建一個抽象類,用抽象方法實現一個過程。這些抽象防範必須在子類中實現,以執行過程的每個步驟。如果這些步驟是獨立變化的,那麼每個步驟都可以用Strategy模式來實現。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章