設計模式2 模板 Template 模式

2022-04-26 04:10:40 字數 1120 閱讀 6096

原文出處:

一. 問題

在物件導向系統的分析與設計過程中經常會遇到這樣一種情況:對於某乙個業務邏輯(演算法實現)在不同的物件中有不同的細節實現,但是邏輯(演算法)的框架(或通用的應用演算法)是相同的。template提供了這種情況的乙個實現框架。

二. 模式

template 模式是採用繼承的方式實現這一點:將邏輯(演算法)框架放在抽象基類中,並定義好細節的介面,子類中實現細節

三. **

[cpp]view plain

copy

//抽象基類,實現了乙個模板方法  

class abstractclass  

//模板方法,只在抽象基類中實現  

void templatemethod()  

protected:  

virtual void primitiveoperation1() = 0;  

virtual void primitiveoperation2() = 0;  

abstractclass()  

};  

//具體子類,實現操作的特定細節  

class concreteclass1:public abstractclass  

~concreteclass1()  

protected:  

void primitiveoperation1()  

void primitiveoperation2()  

};  

//具體子類,實現操作的特定細節  

class concreteclass2:public abstractclass  

~concreteclass2()  

protected:  

void primitiveoperation1()  

void primitiveoperation2()  

};  

int main()  

關鍵點就是將通用演算法封裝在抽象基類中,並將不同的演算法細節放到子類中實現。

設計模式 模板模式(Template)

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

設計模式 Template 模板模式

是什麼 顧名思義,就是通過模板拓印的方式,定義模板採用抽象類來定義,公共的結構化邏輯需要在抽象類中完成,只將非公共的部分邏輯抽象成抽象方法,留待子類充實實現。abstractclass 實現乙個模板方法,定義了演算法的骨架,具體子類將重定義primitiveoperation以實現乙個演算法的步驟。...

設計模式 模板方法Template

前言 模式總覽 by xingoo 定義乙個類的框架,當它有不同的類時,再具體實現。比如,我們設計乙個跨系統的客戶端軟體,windows需要一套展現類,linux需要一套,mac還需要一套。這樣,只需要抽取他們的共同操作程式設計乙個框架類,具體使用到哪個系統時,再使用對應的類,有點像c 裡面的模板。...