/* 装饰模式(Decorator)
* 使用接口继承可以解决车子可以飞或者能游泳。但若增加一个既能飞又能游泳的,(飞、游泳已有,需要组合)则需要在多增加个接口功能。
* 装饰模式,可以把(飞、游泳已有,需要组合)功能叠加起来,而不需要重新多增加已有重复的功能。
* 组成:
* 抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。
* 具体组件角色:为抽象组件的实现类。
* 抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。
* 具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。
*/
客户端测试类:
抽象组件角色
具体组件角色
抽象装饰角色
具体装饰角色
具体装饰角色