設計模式 模版方法模式

2021-08-09 02:38:14 字數 813 閱讀 2458

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

模版方法模式就是提供了乙個很好的**復用平台,是通過把不變行為搬移到超類,去除子類的重複**來體現它的優勢。下面直接看此模式的簡單模版**:

//抽象模版,定義並實現乙個模版方法

abstract class abstractclass

}

//以下是兩個繼承模版類的具體類,實現模版所定義的乙個或多個抽象方法

//具體a類

class concreteclassa : abstractclass

public override void primitiveoperation2()

}//具體b類

class concreteclassb : abstractclass

public override void primitiveoperation2()

}

//客戶端**

class mainprogram

}

通過以上**,很容易看出模版方法模式的好處,就是定義了乙個頂級的骨架(框架),這個框架給出了具體的操作順序,而每一步的操作內容延遲到子類去實現,那麼當我們要修改某一步的操作時,只需要修改這步的子類方法即可,而不會影響到整個流程順序。當不變的和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複出現。我們通過模版方法模式把這些行為搬移到單一的地方,這樣就幫助子類擺脫重複的不變行為的糾纏。

這裡不舉例說明了……因為很容易理解和擴充套件使用

設計模式 模版方法模式

模版方法模式 定義一下操作中的演算法骨架,而將一些步驟延遲到子類中。模版方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模版方法模式結構圖 abstractclass是抽象類,其實也就是一抽象模版,定義並實現了乙個模版方法。這個模版方法一般是乙個具體方法,它給出了乙個頂級邏輯...

設計模式 模版方法模式

模版方法模式 在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模版方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。對模版方法進行掛鉤 鉤子是一種被宣告在抽象類中的方法,但只有空的或者預設的實現。鉤子的存在,可以讓子類有能力對演算法的不同點進行掛鉤。要不要掛鉤,由子...

設計模式 模版方法

設計模式 模版方法 場景小張的團隊最近接受乙個需求,實現實現一家咖啡店的沖泡咖啡和茶的沖泡自動化。之前這家咖啡店都是由咖啡師傅手動進行調製咖啡和茶。現在咖啡店需要引入自動化的點單和調製飲料的系統,小張負責實現調製飲料的功能。咖啡師傅手工沖泡咖啡和茶的流程 沖泡咖啡 把水煮沸 用沸水沖泡咖啡 把咖啡倒...