設計模式 6 模板方法模式

2021-09-02 03:40:06 字數 609 閱讀 5362

還以上一節招聘的為例子。

最近有個招聘會,可以帶上簡歷去應聘了。但是,其中有一家公司不接受簡歷,而是給應聘者發了一張簡歷表,上面有基本資訊、教育背景、工作經歷等欄,讓應聘者按照要求填寫完整。每個人拿到這份**後,就開始填寫。如果用程式實現這個過程,該如何做呢?一種方案就是用模板方法模式:定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。

模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。我們的例子中,操作就是填寫簡歷這一過程,我們可以在父類中定義操作的演算法骨架,而具體的實現由子類完成。

下面給出它的uml圖。

[img]

其中fillresume() 定義了操作的骨架,依次呼叫子類實現的函式。相當於每個人填寫簡歷的實際過程。接著給出相應的c++**。

//簡歷

class resume

virtual void seteducation() {}

virtual void setworkexp() {}

public:

void fillresume()

};class resumea: public resume

設計模式6 模板方法模式

定義 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟。型別 行為類模式 類圖 事實上,模版方法是程式設計中乙個經常用到的模式。先來看乙個例子,某日,程式設計師a拿到乙個任務 給定乙個整數陣列,把陣列中的數由小到大排序,然後把排序...

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

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

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

物件導向,萬物皆物件,用乙個雷來反應現實生活中的東西。比如銀行系統,業務公升級 活期 定期,差別很小,就加判斷 違背單一職責 差別比較多,尤其是模擬較複雜,型別拆分下。拆分之後,自然就有父類,重用。利率 每個客戶端都有利率,但是各不一樣 抽象方法。show 不分客戶端是一樣的,個別客戶端是不一樣的 ...