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

2021-08-20 00:04:45 字數 330 閱讀 1090

裝飾器模式可以理解為為現有的類的新增一些並列的相互解耦的功能。舉個例子就是在i/o中 流stream 和 reader writer 都有許多裝飾,而且他們之間沒有聯絡相互解耦。

裝飾器模式的優點就是他可以有效的把類的核心功能和裝飾的功能區分開,並且可以去除其中的相關類中重複的裝飾邏輯。舉個例子:乙個人類 核心是吃飯 睡覺 穿衣 而裝飾的核心則是穿t恤 穿西服等特定的或者更詳細的功能。

缺點也比較明顯多重裝飾的問題,當裝飾的層級過多時 就會使得程式的類之間的關係比較複雜

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

背景 乙個人出去約會,給這個人新增一些裝飾如穿什麼樣的上衣 下衣 領帶 鞋子等等。裝飾模式 動態的給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。uml類圖 被裝飾的具體物件person類 1 public class person 78 public person str...

大話設計模式之裝飾模式

概念 動態給乙個物件新增額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。結構圖 解析 component類 定義乙個物件介面,可以給這些物件動態新增職責 方法 concretecomponent類 定義了乙個具體的物件,也可以給這個物件新增職責。decorator類 裝飾抽象類,繼承 com...

大話設計模式之裝飾模式

定義 分離類的職責,讓裝飾和主類分離,好處 利用setcomponent來物件進行包裝,這樣每個裝飾物件的實現就和如何使用這個物件分離開了,每個裝飾物件只關心自己的功能,不需要關心被如何新增到物件鏈中 有效的把類的核心職責和裝飾功能分開了,而且可以去除相關類中複雜的裝飾邏輯。例子 服飾類繼承人類,先...