装饰器模式
也叫包装(Wrapper)模式, 目的也是为了扩展现有的对象
示例
角色:
- 抽象组件(Component)
- 具体组件(ComponentImpl)
- 抽象包装角色(Decorator)
- 包装角色实现(DecoratorImpl)
代码:
public interface Component {
void doSomething();
}
public class ComponentImpl implements Component {
@Override
public void doSomething() {
// ...
}
}
public class Decorator implements Component {
private Component component;
public Decorator(Component component) {
this.component = component;
}
@Override
public void doSomething() {
component.doSomething();
}
}
public class DecoratorA extends Decorator {
public DecoratorA(Component component) {
super(component);
}
@Override
public void doSomething() {
super.doSomething();
}
}
public class DecoratorB extends Decorator {
public DecoratorB(Component component) {
super(component);
}
@Override
public void doSomething() {
super.doSomething();
}
}