设计模式-装饰者模式

使用场景

装饰者模式:就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
设计模式-装饰者模式

代码例子

角色接口

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();
}
}