模板方法模式小記 原創

2021-09-08 03:08:55 字數 878 閱讀 7120

模板方法模式,定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類中可以不改變的乙個演算法的結構即可重定義該演算法的某些特定步驟。

首先來看下模板方法模式的結構圖:

abstractclass是抽象類,其實也就是一抽象模板,定義並實現了乙個模板方法。即templetemethod。這模板方法一般是乙個具體方法(在抽象類中實現了的基本方法叫做具體方法;在抽象類中沒有實現,在子類中實現了叫做抽象方法),它給出了乙個頂級邏輯的骨架,而邏輯的組成步驟(doanything、dosomething)在相應的抽象操作中,推遲到子類實現。頂級邏輯也可以呼叫一些具體方法。子類不重寫templetemethod方法。

來看一下abstractclass類:

具體模板類:

客戶端就比較簡單了:

可以看出,每乙個concreteclass都可以給出這些抽象方法的不同實現,從而使得頂級邏輯的實現(templetemethod)各有不同。

模板方法適用於,當不可變的和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複出現。我們通過模板方法模式把這些行為搬遷到單一的地方(templetemethod),這洋酒幫助子類擺脫重複的不變的行為的糾纏。

模板方法模式應用小記

模板方法 抽取通用的流程 執行邏輯 定義抽象方法,通過定義多個子類以獲取不同的實現。原來的 public void intercept interceptorchain chain throws throwable else if allownesting else long s system.na...

命令模式小記 原創

接下來講命令模式,這個模式從名字上看就很簡單,命令嘛,老大發命令,小兵執行就是了,確實是這個意思,但是更深化了,用模式來描述真是是世界的命令情況。我們就以專案組為例子來講述命令模式。專案的成員分工也是採用了常規的分工方式,分為需求組 requirement group,簡稱rg 美工組 page g...

單例模式小記 原創

中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這個場景中,有皇帝,有大臣,大臣是天天要上朝參見皇帝的,今天參拜的皇帝應該和昨天 前天的一樣 過渡期的不考慮,別找茬哦 大臣磕完頭,抬頭一看,嗨,還是昨天那個皇帝,單例模式,絕對的單例模式,先看類圖 單例模式最大的...