《消逝的光芒2》全空投位置攻略 空投在哪
阿新 • • 發佈:2022-02-07
介紹
裝飾器模式也叫包裝者模式,屬於結構型模式,它作為現有類的包裝,允許向一個現有物件新增新的功能,
同時也不改變其結構。
給物件新增功能,有兩種方式:繼承或則關聯組合,講一個類的物件嵌入另一個物件中,由另一個物件決定
對嵌入物件的行為來增強功能,這個是裝飾器模式,比繼承模式更加靈活。
應用場景
以動態、透明的方式給單個物件新增職責,但又不能改變其架構。
jdk原始碼裡面使用最多的就是IO流,大量使用裝飾設計模式。
角色
抽象元件、被裝飾者、裝飾者元件(持有抽象元件的引用)、具體裝飾物。
優點
裝飾模式與繼承的關係都是擴充套件物件的功能,但是裝飾器模式可提供比繼承更多的靈活性。
使用不同的具體裝飾類,以及這些類的排列組合,可以創造出不同行為的組合,原有程式碼無需改變,符合開閉原則。
缺點
裝飾模式增加了許多子類,如果過度使用會使程式變得很複雜;
增大的系統的複雜度,加大學習與理解的難度。
裝飾器模式和橋接模式對比
相同點都是通過封裝其他物件達到設計的目的,和物件介面卡也類似,有的也叫半裝飾設計模式;
橋接模式沒有裝飾者被裝飾者的主次之分,橋接和被橋接則是平等的,不用繼承自同一個父類。