设计模式:装饰者模式(Decorator Pattern)
/**
* 装饰者模式。
* @author Bright Lee
*/
public class DecoratorPattern {
public static void main(String[] args) {
Component component = new ConcreteComponent();
component = new Decorator(component);
component.method();
}
}
interface Component {
void method();
}
/**
* 被装饰者。
*/
class ConcreteComponent implements Component {
public void method() {
System.out.println("我是被装饰者。");
}
}
/**
* 装饰者。
*/
class Decorator implements Component {
private Component component;
Decorator(Component component) {
this.component = component;
}
/**
* 先调用了被装饰者的method方法,再执行自己的代码。
*/
public void method() {
System.out.println("我是装饰者。");
component.method();
System.out.println("我是装饰者。");
}
}
输出结果:
我是装饰者。
我是被装饰者。
我是装饰者。