装饰模式(Decorator)

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

角色

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

模式分析:

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


核心理解

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

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

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


posted @ 2021-11-30 23:13  靠谱杨  阅读(329)  评论(0)    收藏  举报