模板模式(Template Pattern)

2021-10-01 02:20:27 字數 1273 閱讀 6808

1.模板模式:定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。(通俗點說就是將方法宣告到基類中,而在基類中可以通過公有方法訪問對應的不同功能的方法,同時也可以訪問具有已知功能的方法,實現復用。)

2.型別:類行為型模式

3.倒置原則:通俗講 由基類決定呼叫哪個派生類實現,而不是由派生類決定。

4.優點

**復用。使用繼承來實現**復用。

遵守「開閉原則」。可以在不修改原有**的前提下靈活的新增具體子類。

實現反向控制。通過由子類決定是否覆蓋父類的空方法來決定某一特定步驟是否需要執行。

5.缺點

如果基本方法中,可變的基本方法過多,會導致產生大量的子類。

package 模板模式;

/*abstractclass:抽象類

抽象類定義基本操作和模板方法。

基本操作(primitiveoperations):每乙個基本操作對應實現演算法的乙個步驟,在其子類中可以重定義或實現這些步驟。

模板方法(template method):用於定義演算法的框架。可以呼叫抽象類中基本方法,在抽象類的子類中實現的基本方法,還可以呼叫其他物件中的方法。

concreteclass:具體子類

具體類抽象類的子類。

實現在父類中宣告的抽象基本操作,或者重寫在父類中已經實現的具體基本操作。

*/public class templatepattern

}//模板方法為具體的方法,因此不能用介面,只能用抽象類來實現

abstract class abstractclass

//抽象類中的基本方法

public void primitiveoperation1()

//讓子類實現的方法

public abstract void primitiveoperation2();

//空方法,子類中通過選擇是否通過覆蓋此方法來控制某些操作是否執行

public void primitiveoperation3()

}class concreteclassa extends abstractclass

@override

public void primitiveoperation3()

}class concreteclassb extends abstractclass

@override

public void primitiveoperation3()

}

python模板模式 模板設計模式

模板模式使用抽象操作在基類中定義基本演算法,其中子類覆蓋具體行為。模板模式將演算法的輪廓保留在單獨的方法中。該方法被稱為模板方法。以下是模板模式的不同功能 它定義了操作中演算法的骨架。它包括子類,它重新定義了演算法的某些步驟。有關模板設計模式的實現,請參考以下 class makemeal def ...

模板設計模式 設計模式 模板方法模式

在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...

模板設計模式 設計模式之模板模式

模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。模板模式主要解決將通用的演算法抽象起來,同樣的 邏輯出現了重複,就可以使用模板模式進行重構。關鍵 在抽象類實現,其他步驟在子類實現...