小話設計模式五 模板方法模式

2021-06-23 04:22:35 字數 1268 閱讀 9963

**

模板方法模式定義:

定義乙個操作中的演算法骨架,而將一些實現步驟延遲到子類當中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。

模板方法解析:

模板方法模式是比較簡單的一種設計模式,但是它卻是**復用的一項基本的技術,在類庫中尤其重要,它遵循「抽象類應當擁有盡可能多的行為,應當擁有盡可能少的資料」的重構原則。作為模板的方法要定義在父類中,在方法的定義中使用到抽象方法,而只看父類的抽象方法是根本不知道怎樣處理的,實際做具體處理的是子類,在子類中實現具體功能,因此不同的子類執行將會得出不同的實現結果,但是處理流程還是按照父類定製的方式。這就是模板方法的要義所在,制定演算法骨架,讓子類具體實現。 

uml圖如下:

簡單示例**如下:

//

人類基類

class

person

;

void

eatfood();

protected

: person(){}

virtual

void eatbreakfast() = 0

;

virtual

void eatlunch() = 0

;

virtual

void eatsupper() = 0;};

void person::eatfood() //

一天吃飯順序是固定的,先吃早餐,再吃午餐,最後吃晚餐,但是吃的東西確實不同人有不同的吃法

//胖子

class fatperson : public

person

;void

fatperson::eatbreakfast()

void

fatperson::eatlunch()

void

fatperson::eatsupper()

//瘦子

class thinperson : public

person

;void

thinperson::eatbreakfast()

void

thinperson::eatlunch()

void

thinperson::eatsupper()

int _tmain(int argc, _tchar*argv)

小話設計模式(二十二)模板方法模式

模板方法適用於以下情況 1 一次性實現乙個演算法的固定部分,並將可變行為留給子類實現。2 各個子類中公共的行為應該被提取出來並集中到乙個公共的父類中用以避免 重複。3 控制子類擴充套件,父類提供了預設的方法,子類可以在必要時進行擴充套件。模板方法模式一種特別常用的模式,你可能在程式設計過程中無意中就...

設計模式五 模板方法模式簡介

定義乙個操作中,演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟。給定乙個整數陣列,把陣列中的數由小到大排序,然後把排序之後的結果列印出來。經過分析之後,這個任務大體上可分為兩部分,排序和列印 abstractsort package com....

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

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