装饰模式(Decorator),动态的给一个对象添加一些额外的职责,先看图
Component是定义一个对象接口,可以给这些对象动态的添加职责。
ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。
Decorator装饰类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的
至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能
下面是具体的实现:
接着是调用: