C 設計模式之裝飾模式 Decorator

2022-09-29 12:33:15 字數 870 閱讀 3190

裝飾模式是一種經典的類功能擴充套件模式,其精髓在裝飾類使用繼承加聚合的方式獲得介面和要實現物件,然後通過自己實現擴充套件介面

作用裝飾模式通過裝飾類動態地將責任附加到物件上,若要擴充套件功能,無需通過繼承增加子類就能擴充套件物件的新功能,提供了比繼承更有彈性的替代方案,避免了子類數量膨脹帶來的系統臃腫。

類檢視**實現

class component

virtual ~component(){}

virtual void operation() = 0;

};class concretecomponenta : public component

~concretecomponenta(){}

void operation()

};class concretecomponentb : public component

~concretecomponentb(){}

void operation()

};class decorator : public component

virtual ~decorator(){}

virtual void operation()

virtual void setcomponent(component* pcomponent)

protected:

component* mcomponent;

};class concretedecoratore : public decorator

};class 程式設計客棧concretedecoratorf : public decorator

};int main()

本文標題: c++設計模式之裝飾模式(decorator)

本文位址:

c 設計模式之裝飾模式

裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該盡量使用物件組合,而不是物件繼承來擴充套件和復用...

C 設計模式之裝飾模式

動態地給乙個物件增加一些額外的職責,就增加物件的功能來說,裝飾模式比生成子類更為靈活。裝飾模式是一種物件結構模式。我們常常通過繼承的方式來對乙個既有的類進行功能新增,但繼承方式有顯著的侷限性,因為 例如在視窗控制項當中,要增加新的功能如增加滾動條,增加背景,通過繼承的方式來增加新的功能,有下面的解決...

c 設計模式之裝飾模式

裝飾器模式 動態地給乙個物件新增一些額外的工作職責,就增加功能來說,裝飾器模式比繼承的子類更靈活。裝飾模式的類結構圖 兌現 include include using namespace std class car class runcar public car public void showca...