简介

定义

装饰者模式是指在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能,他是通过创建一个包装对象,也就是装饰者来包裹真实的对象
动态的将责任附加到对象上,若要扩展功能,装饰者提供了有别于继承的另一种选择

装饰者组成结构

  • 抽象组件 - 给出抽象接口或抽象类,以规范准备接收附加功能的对象
  • 具体组件 - 定义将要接收附加功能的类
  • 抽象装饰 - 装饰者共同要实现的功能
  • 具体装饰 - 持有一个抽象组件对象,负责给构建对象贴上附加的功能

    装饰者UML图

    装饰者模式 - 图1

    应用场景

    需要扩展一个类的功能,或给一个类添加附加职责
    需要动态的给一个类添加功能,这些功能可以在动态的撤销

特点