(7)裝飾模式

2021-07-30 10:51:40 字數 635 閱讀 4964

又叫作包裝模式。通過一種對客戶端透明的方式來擴充套件物件的功能,是繼承關係的乙個替換方案。

裝飾模式就是把要新增的附加功能分別放在單獨的類中,並讓這個類包含它要裝飾的物件,當需要執行時,客戶端就可以有選擇地、按順序地使用裝飾功能包裝物件。

適用於動態的給乙個物件新增一些額外的職責。增加功能來說,此模式比生成子類更為靈活

#includeusing namespace std;

class human ;

class runman :public human

void run()

void show() override

private:

human* m;

};class swimman :public human

void swim()

void show() override

private:

human* m;

};class flyman :public human

void fly()

void show() override

private:

human* m;

};void main()

設計模式7 裝飾模式

給乙個物件增加一些新的功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項 裝飾介面sourceable public inte ce sourceable 被裝飾類source public class source implements sourceable ...

7 設計模式 裝飾模式

裝飾模式即包裝模式,是一種結構設計模式。從字面上理解就是包裝乙個物件。比如人要穿衣服,房子要裝修。對於客戶端來說,它是乙個顯示的包裝,就是我知道你包裝了什麼。比如房子要裝修。那麼我們的房子可以抽象為乙個介面,裡面有乙個裝修的功能。它的某乙個實現類屬於空白。什麼都不做。跟這個空白類平級需要乙個裝修抽象...

7 裝飾模式(Decorator)

顧名思義,裝飾模式就是給乙個物件增加一些新的功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項,關係圖如下 source類是被裝飾類,decorator類是乙個裝飾類,可以為source類動態的新增一些功能,如下 public inte ce sourceabl...