感觉确实可以递归:
装饰器还有一个特点,可以对原始类嵌套使用多个装饰器,为了满足这样的需求,在设计的时候,装饰器类需要跟原始继承同步的抽象类或者接口
装饰器模式相对于简单的组合关系,有如下特殊点:
- 装饰器类和原始类继承相同的父类,我们可以对原始类嵌套多个装饰器类。
- 装饰器类是对功能的增强,这也是装饰器模式应用场景的一个重要特点。
- 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
- 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销。 当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。
参考文章:
Java版:装饰设计(装饰者模式 / 装饰器模式)
Go版:Go 装饰模式讲解和代码示例
Go 设计模式- 装饰器模式 - 墨天轮 这个也是实现了相同的接口
Go 设计模式 - 装饰器模式 - 掘金



