1、装饰器模式介绍
装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使 用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。装饰器 UML 类图如下:
组件含义如下:
-
组件(Component):组件接口定义了全部组件类和装饰器实现的行为;
-
组件实现类(ConcreteComponent):实现 Component 接口,组件实现类就是被装饰器 装饰的原始对象,新功能或者附加功能都是通过装饰器添加到该类的对象上的
-
装饰器抽象类(Decorator):实现 Component 接口的抽象类,在其中封装了一个 Component 对象,也就是被装饰的对象;
-
具体装饰器类(ConcreteDecorator):该实现类要向被装饰的对象添加某些功能;
我们很多人都玩过游戏,以DNF里的职业剑魂为例,装饰器模式图示如下:
2、装饰器模式优点
装饰器相对于继承,装饰器模式灵活性更强,扩展性更强: