模板方法模式
:定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定的步驟。
定義有些呆板,說說我的理解吧。父類定義實施的步驟,子類中實現具體的演算法。當我們要完成在某一細節層次一直得乙個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時,通常考慮用模板方法木事來處理。
**很簡單的不要不要的,還有注釋。直接貼啦。
(1)定義抽象模板父類
/**
* 抽象模板,定義並實現了乙個模板方法。這個模板方法一般是個具體方法
。
* 它給出了乙個頂級邏輯的骨架。
* 而邏輯的組成步驟在相應的抽象操作中,推遲到子類實現。
* 頂級邏輯也有可能呼叫一些具體方法。
* @author 董永康
* */
public abstract class abstractclass
}
(2)具體實現子類
/**
* 具體實現類,在這裡實現父類定義的乙個或者多個抽象方法
* @author 董永康
* */
public class concreteclassa extends abstractclass
@override
public void sub()
}
/**
* 具體實現類,在這裡實現父類定義的乙個或者多個抽象方法
* * @author 董永康
* */
public class concreteclassb extends abstractclass
@override
public void sub()
}
(3)測試類
public class template
}
(4)輸出
concreteclassa-->add()
concreteclassa-->sub()
com.dyk.template.concreteclassa
concreteclassb-->add()
concreteclassb-->sub()
com.dyk.template.concreteclassb
總結:模板方法模式是通過把不變的行為搬移到超類,去除子類中的重複**來體現它的優勢。提供了乙個很好的**復用平台。通過模板方法模式把不可變的行為搬移到父類,幫助子類拜託重複不變行為的糾纏。
Android設計模式系列 模板方法模式
2013 11 26 17 15 佚名 字型大小 t t 我個人對模板方法的經典思想特別推崇,雖然模板方法在大對數情況下並不被推薦使用,但是這種通過父類呼叫子類的方法,使用繼承來改變演算法的一部分,是物件導向的一種基本認識。模板方法,和單例模式是我認為gof的23中最簡單的兩種模式。但是我個人對模板...
設計模式系列之模板方法模式
在物件導向開發過程中,通常會遇到這樣乙個問題,我們知道乙個演算法所需的關鍵步驟,並確定了這些步驟的執行順序,但是,某些步驟的具體實現是未知的,或者說某些步驟的實現是會隨著環境的變化而改變,例如,執行程式的流程大致如下 1 檢查 的正確性 2 鏈結相關的類庫 3 編譯相關的 4 執行程式 對於不同的程...
Android設計模式系列 模板方法模式
模板方法,和單例模式是我認為gof的23中最簡單的兩種模式。但是我個人對模板方法的經典思想特別推崇,雖然模板方法在大對數情況下並不被推薦使用,但是這種通過父類呼叫子類的方法,使用繼承來改變演算法的一部分,是物件導向的一種基本認識。打比方說父親有很多理想,就行醫救人吧,但是父親醫術不行,只能靠兒子,兒...