定義
模板方法模式要求定義乙個操作中的演算法框架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。通常,演算法框架可使用抽象類定義,其中,可以有乙個或幾個實現對基本方法進行排程的具體方法,也就是乙個框架,叫做模板方法;而由子類實現,並被模板方法呼叫的方法叫做基本方法。
類圖
實現抽象模板類:
package com.sigalhu.templatemethod;
public
abstract
class
abstractclass
}
具體模板類:
package com.sigalhu.templatemethod;
public
class
concreteclass1
extends
abstractclass
@override
protected
void
dosomething()
}
package com.sigalhu.templatemethod;
public
class
concreteclass2
extends
abstractclass
@override
protected
void
dosomething()
}
場景類:
package com.sigalhu.templatemethod;
public
class
client
}
優點 缺點
在模板方法模式中,抽象類定義了部分抽象方法,由子類實現,子類執行的結構影響了父類的結果,也就是子類對父類產生了影響,這在複雜的專案中,會帶來**閱讀的難度。
原始碼:
設計模式之禪讀書筆記之模板方法模式
將某些操作的流程在類的方法中定義好,而將這些操作的具體步驟中的邏輯延遲到子類中去實現,這樣子類可以在不改變操作流程的情況下,修改具體步驟中的邏輯。這裡定義操作執行流程的方法就稱為模板方法,所有的子類都共享該方法,子類的多樣性可以通過定義具體步驟的邏輯展現出來。在模板方法模式中,需要先定義乙個抽象父類...
《設計模式之禪》讀書筆記 策略模式
策略模式 strategy pattern 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。對於策略模式來說了解清楚它三個角色的作用,基本就差不多了。策略模式的三個角色 它也叫做上下文角色,起承上啟下封裝作用,遮蔽高層模組對策略 演算法的直接訪問,封裝可能存在的變化。策略 演算法家族...
《設計模式之禪》讀書筆記 3 工廠方法模式
定義 工廠方法模式一般定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。類圖 在工廠方法模式中,抽象產品類product負責定義產品的共性,實現對事物最抽象的定義 creator為抽象建立類,也就是抽象工廠,具體如何建立產品類是由具體的實現工廠concret...