(12)设计模式
文章目录
- 1. 定义
- 2. 通用类图
- 3. 装饰器的优缺点
- 3.1 优点
- 3.2 缺点
- 4. 装饰模式的使用场景
- 5. 装饰器模式特殊地方
1. 定义
动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。
Java IO 使用的就是装饰器模式。
2. 通用类图
3. 装饰器的优缺点
3.1 优点
- 装饰类和被装饰类可以独立发展,而不会相互耦合。
- 装饰模式是继承关系的一个替代方案。
- 装饰器模式可以动态地扩展一个实现类的功能。
3.2 缺点
多层的装饰是比较复杂的。
4. 装饰模式的使用场景
- 需要扩展一个类的功能,或给一个类增加附加功能。
- 需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
- 需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。
5. 装饰器模式特殊地方
- 装饰器类和原始类继承同样的父类,可以对原始类“嵌套”多个装饰器类。
- 装饰器类是对功能的增强,这也是装饰器模式应用场景的一个重要特点。
发布评论