使用场景
装饰模式,英文名Decorator Pattern
该模式通过一个装饰类来包裹一个核心组件类,这样装饰类既可以使用组件的功能,也可以做一些额外的扩展工作
采用这种设计模式,一般可能出于以下几种原因
- 核心组件类不允许继承或重写
- 只是偶然需要做一些扩展工作,并没有复用价值,没必要再继承一个类
实现代码
public class Component {
public void work() {
}
}
public class ComponentDecorator {
private Component comp = new Component();
public void work() {
System.out.print("extra work 1");
comp.work();
System.out.print("extra work 2");
}
}