又叫作包裝模式。通過一種對客戶端透明的方式來擴充套件物件的功能,是繼承關係的乙個替換方案。
裝飾模式就是把要新增的附加功能分別放在單獨的類中,並讓這個類包含它要裝飾的物件,當需要執行時,客戶端就可以有選擇地、按順序地使用裝飾功能包裝物件。
適用於動態的給乙個物件新增一些額外的職責。增加功能來說,此模式比生成子類更為靈活
#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...