設計模式學習筆記(三) 裝飾者模式

2021-08-13 22:18:57 字數 1218 閱讀 2117

[同系列文章]

1.設計模式學習筆記(一)- -策略模式

2.設計模式學習筆記(二)- -觀察者模式

我又來了,續更ヾ(◍°∇°◍)ノ゙,接下來的內容是觀察者模式的學習筆記

以下正文ヽ( ̄▽ ̄)ノ)

裝飾者模式 動態地將責任附加到物件上。若要拓展功能,裝飾者提供了比繼承更加富有彈性的替代方案。

先大概看看下面的幾張圖,幫助恢復記憶~

類圖:

思路:以咖啡為例子,首先擼乙個 咖啡的抽象類 以及 乙個 調味抽象類(繼承了咖啡抽象類的),然後實現咖啡的具體類,實現調味的具體類~~

上個**幫助理解:

//咖啡的抽象類

public

abstract

class

coffee

public

abstract

double

cost();

}//繼承咖啡的調味料抽象類

public

abstract

class

condiment

extends

coffee

//繼承咖啡的具體類

public

class

miaoshicoffee

extends

coffee

public

double

cost()

}//繼承調味料的具體類

public

class

salt

extends

condiment

public string getdes()

public

double

cost()

}public

class

test

}

總結:像洋蔥一樣,一層一層的剝開你的心~完結。2333,不是很難,認真看書消化吧

設計模式筆記(三) 裝飾者模式

裝飾者模式 decorator pattern 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。簡單點說,裝飾者可以裝飾 也就是在原來功能的基礎上再擴充套件其功能 被裝飾者。乙個被裝飾者可以被多個裝飾者裝飾,或者被相同的裝飾者裝飾多次,是不是很靈活啊。而這就要求裝飾...

設計模式(三) 裝飾者模式

裝飾者結構圖 1 component 被裝飾者的抽象類或介面,定義了新增職責的方法 2 concretecomponent 被裝飾者的具體實現類,如果只有乙個被裝飾者,concretecomponent和component可以合二為一 3 decorator 裝飾者父類,繼承component被裝飾...

設計模式(三)裝飾者模式

星巴克咖啡館想要乙份選單系統,要求能夠計算不同種類咖啡加上不同調料 牛奶 豆漿 摩卡 奶泡。的 tom做了如下實現 每個咖啡都要繼承這個飲料類,然後對是否有各種調料進行配置,然後實現cost 方法。這樣基本解決了這個問題,但是如果現在又增加了幾種飲料,是不是需要更改現在的 呢?如何才能不對以前 做修...