装饰者模式

动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。

设计原则

对扩展开放,对修改关闭

理解要点

装饰者和被装饰者(组件或被装饰者装饰的组件)类型一致,装饰者持有一个被装饰者的引用。 装饰者可以在被装饰者的行为前面与/或后面加上自己的行为,甚至取代被装饰者的行为。 可以用无数装饰者包装一个组件。 装饰者一般对组件客户透明。 装饰者模式意味着一群装饰者类,过度使用会让程序变复杂。