public class Sourceable{
public void method();
}
public cass Source implements Sourceable{
@Override
public void method(){
System.out.println("this is the orginal method");
}
}
public class Decrator implements Sourceable{
private Sourceable source;
public Decrator(Sourceable source){
super();
this.source = source;
}
@Override
public void method(){
System.out.println("this is the decrator start");
source.method();
System.out.println("this is the decrator end");
}
}
public class TestDecrator{
public static void main(String[] args){
Sourceable source = new Source();
Sourceable decrator = new Decrator(source);
decrator.method();
}
}