c 裝飾模式(decorate)

2022-05-13 22:27:14 字數 972 閱讀 6847

裝飾模式:動態地給乙個物件新增一些額外的職責。就增加功能來說,裝飾模式相比生成子類 更為靈活。有時我們希望給某個物件而不是整個類新增一些功能。比如有乙個手機,允許你為手機新增特性,比如增加掛件、螢幕貼膜等。一種靈活的設計方式是, 將手機嵌入到另一物件中,由這個物件完成特性的新增,我們稱這個嵌入的物件為裝飾。這個裝飾與它所裝飾的元件介面一致,因此它對使用該元件的客戶透明。

#include #include 

using

namespace

std;

class

phone

virtual ~phone() {}

virtual

void

showdecorate() {}

};class iphone:public

phone

~iphone() {}

void

showdecorate()

};class androidphone : public

phone

~androidphone() {}

void

showdecorate()

};class decoratorphone : public

phone

virtual

void

showdecorate()

};class decoratorphonea:public

decoratorphone

void

showdecorate()

private

:

void

adddecorate()

};int

main()

輸出結果:

5s的裝飾

增加掛件

mi2s的裝飾

增加掛件

請按任意鍵繼續. . .

c 裝飾模式(decorate)

裝飾模式 動態地給乙個物件新增一些額外的職責。就增加功能來說,裝飾模式相比生成子類 更為靈活。有時我們希望給某個物件而不是整個類新增一些功能。比如有乙個手機,允許你為手機新增特性,比如增加掛件 螢幕貼膜等。一種靈活的設計方式是,將手機嵌入到另一物件中,由這個物件完成特性的新增,我們稱這個嵌入的物件為...

設計模式(六) Decorate

裝飾設計模式 當想要對已有物件進行功能增強時,可以定義乙個類,將已有物件傳入,基於已有物件的功能,並提供加強功能,那麼,自定義的該類就稱為裝飾類 裝飾類通常會通過構造方法接收被裝飾的物件,並基於被裝飾物件的功能,提供更豐富的功能 裝飾模式比繼承要靈活,避免了 臃腫,而且降低了類與類之間的關係 裝飾類...

c 設計模式 裝飾模式

裝 飾模式又名包裝模式,以對客戶端透明的方式擴充套件物件的功能,是繼承關係的乙個替代方案。它使用原來被裝飾的類的乙個子類的例項,把客戶端的呼叫委派到被裝 飾類,客戶端並不會覺得物件在裝飾前和裝飾後有什麼不同。在以下情況下應使用裝飾模式 需要擴充套件乙個類的功能,或給乙個類增加附加責任。動態地給乙個物...