這個模式的最主要的作用是可以 擴充套件被裝飾者的 狀態和行為。很酷吧。
這樣,可以在不修改被裝飾者的類的情況下,來擴充套件行為和狀態。
這也是一種退化的組合模式。
這裡不要和adapter適配者弄混淆,雖然都是改變原有類的介面,但是 adapter一般會重新命名被適配者的介面名字,為了滿足新的需要。
但是decorator卻是不會改變名字的,只是將其行為改變,進行了再包裝,成了新的物件。
注意這裡改變行為是以原有行為的基礎上改變的,這又不同於策略模式,策略模式是重新實現一組演算法,是重新來過。
嗯,區分,要區分清楚呀。
設計模式之Decorator 家裝篇
設計模式之 decorator 家裝篇 最近家裡搞裝修,做了一套家具,需要刷一下漆,因此我就去市場找了油漆師傅和油漆徒弟兩個人。油漆師傅主要買油漆和調油漆,油漆徒弟主要來 刷油漆 團隊精神?哈哈,不禁讓讓我想起 cs,你先衝,我揀菜。1 在這裡,我們先把這個油漆工作定義成乙個介面類 public i...
Java設計模式之Decorator模式
感覺比之前理解深了一點,紅字為新理解的內容,小白看過來 首先,不抽象,舉個例子。我要去喝咖啡,咖啡店裡有兩種咖啡,一種摩卡的,一種藍山的,摩卡的50塊,藍山的100塊。買了咖啡後還能放配料,有牛奶和伴侶。牛奶10塊一包,伴侶高階一 點,15塊一包。現在店裡新上貨一種配料方糖,5塊錢一包,現在把上述的...
設計模式之裝飾模式(Decorator)
現在有這樣乙個場景,需要給乙個人穿不同風格的衣服,那在物件導向的思想下應該怎麼寫呢 class person public void show abstract class finery class tshirts extends finery class pants extends finery ...