装饰模式(Decorator)

意图

动态地给一个对象添加一些额外的职责。

就增加功能来说,Decorator模式相比生成子类更为灵活。

适用性

参与者

向组件添加职责。

协作

Decorator将请求转发给它的Component对象,并有可能在转发请求前后执行一些附加的动作。

优点

缺点

实现

使用Decorator模式时应注意以下几点:

示例一:通用源代码

1565773984146

1565773463280

示例二:窗体装饰

1565773924986

1565773952765

示例三:给汽车新增功能

1565775400963

1565775470726

经典示例:典型的装饰者I/O

java.io 包内的类很多都是装饰者:

1565774712189