为什么要使用装饰器模式?
在扩充一个类对象的功能的时候,经常使用继承的方式,但是当组合很多的时候,会出现很多的子类,造成“类爆炸”。使用装饰器模式:将一个类的对象嵌入到另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为。
什么是装饰器模式?
动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。
如何使用装饰器模式?
装饰器模式包含的角色:
- Conponent:抽象组件
- ConcreteConponent:具体组件
- Decorator:抽象装饰
- ConcreteDecorator:具体装饰
装饰器模式的类图: