裝飾模式(Decorator)


定義:動態地給一個對象增加一些額外的職責。

角色

  • 抽象構件:Component
  • 具體構件:ConcreteComponent
  • 抽象裝飾類:Decorator
  • 具體裝飾類:ConcreteDecorator

模式分析:

具體構件類和抽象構件類都實現了抽象構件接口,模式的關鍵在於抽象裝飾類,這個類實現了抽象構件接口並且組合了抽象構件,在其構造函數中設置參數注入具體構件對象,在其裝飾方法中調用這個注入的構件類已有的方法,再通過具體裝飾類的繼承,添加其他方法和功能。


核心理解

裝飾模式做的事情是動態修改被裝飾者的一些屬性方法等等。

根據依賴倒轉原則,待裝飾的類和裝飾者類都要實現自同一個抽象構件接口,在裝飾者類的構造方法里要注入一個待裝飾者對象,裝飾者類和抽象構件接口是組合關系和接口實現關系,在裝飾者類中提供一個可擴展的方法供子類重寫。

具體的裝飾者類繼承抽象裝飾者類,重寫其擴展方法完成對待裝飾對象的裝飾!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM