使用场景
装饰者模式:就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
代码例子
角色接口
public interface Sourceable {
void method();
}
具体角色实现
public class Source implements Sourceable{
@Override
public void method() {
System.out.println("the original method!");
}
}
装饰者
public class Decorator implements Sourceable {
private Sourceable source;
public Decorator(Sourceable source) {
super();
this.source = source;
}
@Override
public void method() {
System.out.println("before decorator!");
source.method();
System.out.println("after decorator!");
}
}
main函数
public class Test {
public static void main(String[] args) {
Sourceable source = new Source();
Sourceable obj = new Decorator(source);
obj.method();
}
}