行為模式 Template 模式

2021-08-29 09:15:36 字數 935 閱讀 2277

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

主要解決在軟體構建過程中,對於某一項任務,常常有穩定的整體操作結構,但各個子步驟卻有很多改變的需求,或者由於固有的原因而無法和任務的整體結構同時實現。

abstractcar中的driveontheroad方法叫做template method(模板方法),template method用primitive operation定義乙個演算法,是相對穩定的部分。(子類中重新定義primitive operation)。

然後我們要實現一輛bora汽車(結構圖中的concreteclass)

public class bora : abstractcar //繼承

protected override string run()

protected override string stop()

}1、  template method模式是一種非常基礎性的設計模式,在物件導向系統中有著大量的應用。它用最簡潔的機制(虛函式的多型性)為了很多應用程式框架提供了靈活的擴充套件點,是**復用方面的基本實現結構。

2、  除了可以靈活應對子步驟的變化外,「don't call me.let me call you」的反向控制結構是template method的典型應用。「don』t call me.let me call you」是指乙個父類呼叫乙個子類的操作,而不是相反。

3、  在具體實現方面,被template method呼叫的虛方法可以具有實現,也可以沒有任何實現(抽象方法、純虛方法),但一般推薦將它們設定為protected方法。可以沒有具體實現的方法應該稱為hook operation(鉤子操作),提供了預設的行為,子類可以在必要時進行擴充套件。

4、  儘量減少primitive operation,因為需要重新定義的操作越多,客戶程式就越長

設計模式 Template模式

在物件導向系統的分析與設計過程中經常會遇到這樣一種情況 乙個流程可以分為a,b,c 多個步驟,但在具體的步驟中可能會有不同的情況出現,這時就template模式就非常有用 class p object defa pass defb pass defoperate a b class sub p de...

設計模式筆記 Template模式

模板模式,邏輯很清晰,容易實現,用的也多!需求情景就是 對乙個業務邏輯 演算法實現,在不同物件中有不同的細節實現,但是邏輯的框架是相同的!就是說它們的操作步驟 介面是相同的,以繼承的方式實現!看下圖uml就明白了 到公司應聘,公司給每人發乙個簡歷表,讓大家填,而不是直接用每個人自己帶的簡歷!有幾點 ...

設計模式 模板模式(Template)

定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟 定義了乙個或多個抽象操作,以便讓子類實現,這些操作叫做基本操作 定義並實現了乙個模板方法,這個模板方法一般是乙個具體方法,它給出了乙個頂級邏輯的骨架,而邏輯的組成步驟在相應的抽...