定义
动态地给一个对象添加一些额外的职责。
使用场景
需要透明且动态地扩展类的功能。
Java 代码示例
public abstract class Component {
public abstract void operate();
}
public class ConcreteComponent extends Component {
@Override
public void operate() {
}
}
public abstract class Decorator extends Component {
private Component mComponent;
public Decorator(Component component) {
mComponent = component;
}
@Override
public void operate() {
mComponent.operate();
}
}
public class Decorator1 extends Decorator {
public Decorator1(Component component) {
super(component);
}
@Override
public void operate() {
super.operate();
operateA();
operateB();
}
public void operateA() {
}
public void operateB() {
}
}
public class Client {
public static void main(String[] args) {
Component component = new ConcreteComponent();
Decorator decorator = new Decorator1(component);
decorator.operate();
}
}