定義:分離類的職責,讓裝飾和主類分離,
好處:利用setcomponent來物件進行包裝,這樣每個裝飾物件的實現就和如何使用這個物件分離開了,每個裝飾物件只關心自己的功能,不需要關心被如何新增到物件鏈中
有效的把類的核心職責和裝飾功能分開了,而且可以去除相關類中複雜的裝飾邏輯。
例子:服飾類繼承人類,先包裝再show,**都是這麼寫的,例
person xc = new person("小菜");
sneakers sk = new speakers();
bigtrouser bt = new bigtrouser();
sk.decorate();
bt.decorate();
dt.show();//最後才呼叫這個方法 來顯示父類的方法
大話設計模式之裝飾模式
概念 動態給乙個物件新增額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。結構圖 解析 component類 定義乙個物件介面,可以給這些物件動態新增職責 方法 concretecomponent類 定義了乙個具體的物件,也可以給這個物件新增職責。decorator類 裝飾抽象類,繼承 com...
大話設計之裝飾模式
裝飾模式 動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。設計原則 1.多用組合,少用繼承 利用繼承設計子類的行為,是在編譯時靜態決定的,而且所有的子類都會繼承到相同的行為。然而,如果能夠利用組合的做法擴充套件物件的行為,就可以在執行時動態地進行擴充套件。2.類應設計...
大話設計模式之裝飾者模式
通過閱讀本篇文章,可以給喜歡使用繼承的開發人員提供一種新的思路。我們將會了解濫用繼承帶來的不良後果,同時也會介紹比繼承更合理的實現方式。利用繼承設計子類的行為,是在編譯時期靜態決定的,而且所有的子類都會繼承到相同的行為。然而,如果能夠利用組合的做法擴充套件物件的行為,就可以在執行時動態地進行擴充套件...