1、装饰模式
动态的给一个对象添加一些额外的职责,就增加功能来说Decorator模式相比生成子类更为灵活。
要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
实例一:
public interface Source {
public void method();
}
public class SourceChild implements Source {
@Override
public void method() {
System.out.println(" ~~~~ method() ~~~~~");
}
}
public class Decorator implements Source {
private Source source = null;
public Decorator(final Source source) {
this.source = source;
}
@Override
public void method() {
this.source.method();
System.out.println(" ~~~ method2() ~~~");
}
}
模拟测试:
public class Client {
public static void main(final String[] args) {
final SourceChild sc = new SourceChild();
final Decorator dt = new Decorator(sc);
dt.method();
}
}