設計模式之Decorator 家裝篇

2021-03-31 08:56:30 字數 1009 閱讀 7230

設計模式之

decorator

——家裝篇

最近家裡搞裝修,做了一套家具,需要刷一下漆,因此我就去市場找了油漆師傅和油漆徒弟兩個人。

油漆師傅主要買油漆和調油漆,油漆徒弟主要來

刷油漆(團隊精神?哈哈,不禁讓讓我想起

cs,你先衝,我揀菜。)。

1、在這裡,我們先把這個油漆工作定義成乙個介面類:

public inte***ce work

2、因為

油漆師傅和油漆徒弟的任務是

刷油漆,因此他們要對

work

介面進行實現:a:

油漆徒弟

刷油漆的工作主要是由油漆徒弟來完成,所以我們把油漆徒弟定義成brusher(油漆師傅在一旁說:「徒弟嗎,就是要多幹活。」,油漆徒弟小聲嘀咕:「多你個頭。」)。

public class brusher implements work

}b:油漆師傅

我們把油漆師傅定義成decorator。

public class decorator implements work

public void brush()

//新的工作

public void newwork()

//油漆師傅做的前期輔助工作

public void prework() }3

、編寫測試類:

public class test

4、說明:a:

**只用來學習

decorator模式,

要執行的話,必須要做一點改動。

b:在這過程中,我只和

油漆師傅打交道,具體的刷油漆那是由油漆師傅和油漆徒弟之間的事,我是不用關心的。

c:使用

decorator

的理由是

:這些功能需要由使用者動態決定加入的方式和時機

.decorator

提供了"

即插即用

"的方法

,在執行期間決定何時增加何種功能

.

Java設計模式之Decorator模式

感覺比之前理解深了一點,紅字為新理解的內容,小白看過來 首先,不抽象,舉個例子。我要去喝咖啡,咖啡店裡有兩種咖啡,一種摩卡的,一種藍山的,摩卡的50塊,藍山的100塊。買了咖啡後還能放配料,有牛奶和伴侶。牛奶10塊一包,伴侶高階一 點,15塊一包。現在店裡新上貨一種配料方糖,5塊錢一包,現在把上述的...

設計模式之裝飾模式(Decorator)

現在有這樣乙個場景,需要給乙個人穿不同風格的衣服,那在物件導向的思想下應該怎麼寫呢 class person public void show abstract class finery class tshirts extends finery class pants extends finery ...

設計模式之裝飾模式(Decorator)

1 裝飾者模式,動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更加有彈性的替代方案。2 組合和繼承的區別 繼承。繼承是給乙個類新增行為的比較有效的途徑。通過使用繼承,可以使得子類在擁有自身方法的同時,還可以擁有父類的方法。但是使用繼承是靜態的,在編譯的時候就已經決定了子類的行為,我們...