設計模式之模板方法模式

2021-07-02 18:51:08 字數 916 閱讀 9947

下面定義乙個抽象類,抽象類包含一組抽象方法,還有乙個具體的方法,它規定了乙個演算法或一套流程來使用這一組抽象方法。

public abstract class abstractclass

}}

下面定義一組子類來實現上面的抽象類,並實現所有抽象方法。子類只能決定如何實現每乙個抽象方法,但這一組方法的呼叫演算法是由父類規定的。

public class class1 : abstractclass

protected override bool abstractmethod2()

protected override void abstractmethod3() }

public class class2 : abstractclass

protected override bool abstractmethod2()

protected override void abstractmethod3()

}

下面是場景類

class program

}

執行結果:

i am class1

abstract method3 in class1 invoked

i am class2

在模板方法中,把認為不變部分的演算法封裝到父類實現,而可變部分則通過繼承來分散到不同的子類中。

##定義

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

工廠方法模式是模板方法模式的典型實現。工廠方法模式一般只定義了乙個抽象方法,推遲到子類中實現,而模板方法模式卻定義了多個抽象方法,還規定好了這一組方法的呼叫演算法。

模板設計模式 PHP設計模式之模板方法模式

模板方法模式,也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重複的動作時,將他們提取出來,放在父類中進行統一的處理,這就是模板方法模式的最簡單通俗的解釋。就像我們平時做專案,每次的專案流程實都差不多,都有調研 開發 測試 部署上線等流程。而具體到每個專案中,這些流...

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

父類抽象出子類共有的方法,子類實現各自不同的業務。總之就是一種行為有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行為模式,啟動 換擋 踩油門。每種型號品牌的車都有共同的行為,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行為的模式,稱之為模板方...

設計模式之模板方法模式

定義 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟 型別 行為類模式 事實上,模板方法是程式設計中乙個經常用到的模式。比如,給定乙個整數陣列,把陣列中的數由大到小順序,然後把排序之後的結果列印出來。這個需求大體可以分為兩部分,...