設計模式 模板

2022-08-16 10:18:08 字數 1970 閱讀 4731

模板方法模式:定義了乙個操作中的演算法骨架,將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。 2、 模板方法模式是通過把不變行為搬到超類,去除子類中的重複**來體現它的優勢,當不變的和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複出現。我們通過模板方法模式把這些行為搬移到單一(基類中)的地方,這樣就幫助子類擺脫重複的不變行為的糾纏。

demo如下:

首先我們先新建乙個模板類templet,定義演算法的骨架:

其次,我們再新建兩個繼承自templet的兩個子類,並實現父類中的幾個虛函式:

這倆個子類都繼承了父類的幾個虛函式,但倆個子類中實現虛函式功能不同,呼叫時用多型,具體看main函式:

在這裡我用的demo非常簡單,但是設計模式最重要的是思想,下面我們看策略模式:

1—抽象策略角色: 策略類,通常由乙個介面或者抽象類實現。

3—環境角色:持有乙個策略類的引用,最終給客戶端呼叫。

4−策略模式定義了一系列的演算法,並將每乙個演算法封裝起來,而且使它們還可以相互替換。策略模式讓演算法獨立於使用它的客戶而獨立變化。

我們寫乙個demo來實現兩個數的加,減,乘,除

首先我們新建乙個抽象介面類strategy:

兩個數相加類:

兩個數相減類:

兩個數相乘類:

teststrategywithmul.h

teststrategywithmul.cpp

兩個數相除類:

teststrategywithdiv.h

teststrategywithdiv.cpp

我們用4個子類分別將抽象類具體化,於是我們還要寫乙個管理這4個子類的管理類manager:

manager.h

manager.cpp

在這個管理類中我們可以看到,依然是用了多型

最後我們看一下main函式

我們看到,在使用時只需要與管理類直接互動。

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

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

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

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

設計模式 模板設計模式

1 抽象類 abstractclass類中實現了模板方法 template 定義了演算法的骨架,具體子類需要去實現,抽象方法operationr2,3,4 template operationr2,3,4可以是抽象方法,也可以是實現方法 如果是抽象方法,需要到子類實現即可 2 實現類 concret...