大話設計模式 裝飾者模式(總結)

2021-08-08 18:04:20 字數 487 閱讀 5967

1、裝飾者模式的一般應用場景:

當系統增加新的功能,需要給類增加新的功能,而這些新的功能又主要是為了修飾原來類中的核心職責或者功能,也就是說,這些新的功能是用來修飾的,而且這些用來修飾的功能是在滿足某乙個特定情境下才會有需要執行的,這個時候就需要用到 裝飾者模式。

2、裝飾者模式的構成

(1)抽象構件(component),這是乙個抽象的物件介面,可以給這個物件動態的新增職責。

(2)具體構件(concretecomponent),這是乙個具體的物件,也可以給這個物件新增職責。(有時候可以不需要component)

(3)裝飾角色(decortor),裝飾抽象類,繼承了component,從外類擴充套件component的功能。

(4)具體裝飾角色(concretedecortor),具體的裝飾物件,就是給component新增的新功能。

3、實現:

(1)裝飾物件和真實物件有相同的介面

(2)裝飾物件中包含乙個真實物件的應用

大話設計模式之裝飾者模式

通過閱讀本篇文章,可以給喜歡使用繼承的開發人員提供一種新的思路。我們將會了解濫用繼承帶來的不良後果,同時也會介紹比繼承更合理的實現方式。利用繼承設計子類的行為,是在編譯時期靜態決定的,而且所有的子類都會繼承到相同的行為。然而,如果能夠利用組合的做法擴充套件物件的行為,就可以在執行時動態地進行擴充套件...

大話設計模式之裝飾者模式

現在有乙個需求 設計乙個qq秀,可以隨意搭配服飾。直接將上 父類的父類person 為什麼需要父類的父類 乍看父父類其實是可有可無的,但如果刪掉,你會發現父類finery的decorate無法放裝飾者 package decoratorpattern public class person priv...

大話設計模式之裝飾者模式

裝飾者模式通過使用繼承,能夠將物件一層一層地包裝起來。1,person是被裝飾的物件,裝飾者模式的類圖中,所有的類都繼承自person類。person類有乙個show方法,用來展示person物件哪些服飾裝飾了。通過繼承,所有的類都有show方法,因此當人穿上了某種服飾之後,就可能呼叫該服飾的sho...