装饰模式(Decorator)


定义:动态地给一个对象增加一些额外的职责。

角色

  • 抽象构件:Component
  • 具体构件:ConcreteComponent
  • 抽象装饰类:Decorator
  • 具体装饰类:ConcreteDecorator

模式分析:

具体构件类和抽象构件类都实现了抽象构件接口,模式的关键在于抽象装饰类,这个类实现了抽象构件接口并且组合了抽象构件,在其构造函数中设置参数注入具体构件对象,在其装饰方法中调用这个注入的构件类已有的方法,再通过具体装饰类的继承,添加其他方法和功能。


核心理解

装饰模式做的事情是动态修改被装饰者的一些属性方法等等。

根据依赖倒转原则,待装饰的类和装饰者类都要实现自同一个抽象构件接口,在装饰者类的构造方法里要注入一个待装饰者对象,装饰者类和抽象构件接口是组合关系和接口实现关系,在装饰者类中提供一个可扩展的方法供子类重写。

具体的装饰者类继承抽象装饰者类,重写其扩展方法完成对待装饰对象的装饰!



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM