是什麼
動態的將責任附加到物件上,實現了動態擴充套件,更有彈性。
類圖
beverage:是乙個所有飲料的抽象類,獲得咖啡底料的種類,計算**。
houseblend,espresso是繼承beverage 的兩種咖啡,咖啡的**。
mocha:在配料mocha處用乙個例項記錄點什麼咖啡 ,同時我們在
getdiscription處反饋的是被裝飾過的飲料。
cost(mocha):計算的是咖啡底料+配料的**。
小結根據類圖梳理**思路,加上自己的理解,更進一步學習知識,學以致用,在去實踐,簡單的例子實踐,專案重實踐。
設計模式 裝飾者模式 1
一 用headfirst 設計模式 咖啡例子 1.裝飾者模式 1.動態地將責任附加到物件上 1.1 以飲料為主體,然後在執行時以調料來 裝飾 飲料 2.裝飾者與被裝飾者間必須要有共同超類 2.1 並非用繼承獲得行為,而是組合物件而來,並且由執行時決定 3.通常裝飾者模式採用抽象類 4.利用例項變數 ...
裝飾者模式
裝飾者模式 動態地將責任附加到物件上。若要擴張功能,裝飾者提供了比繼承更有彈性的替代方案。裝飾者可以在所委託被裝飾者的行為之前或之後,加上自己的行為,以達到特定的目的。裝飾者與被裝飾者物件具有相同的超型別。include include using namespace std class bever...
裝飾者模式
裝飾者模式,是在不改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。裝飾者模式中的角色 1 被裝飾者抽象component,是乙個介面或抽象類,就是定義最核心的物件,也是最原始的物件,這個類是需要裝飾類的基類。2 被裝飾者具體實現co...