执行结果:
prepared for all things
doing real things :target Impl is execute //真的要做的事
end for somethings
代理对象的接口
package design.proxy;
public interface Target {
public void doingRealThings();
}
代理对象的实现
package design.proxy;
public class TargetImpl implements Target{
@Override
public void doingRealThings() {
System.out.println("doing real things :target Impl is execute");
}
}
代理
package design.proxy;
import org.springframework.beans.factory.annotation.Autowired;
public class ProxyTarget implements Target{
private Target target;
public ProxyTarget(Target target) {
this.target = target;
}
@Override
public void doingRealThings() {
System.out.println("prepared for all things ");
target.doingRealThings();
System.out.println("end for somethings");
}
}
测试类
package design.proxy;
import org.springframework.beans.factory.annotation.Autowired;
public class TestTarget {
public static void main(String[] args) {
Target target1 = new ProxyTarget(new TargetImpl());
target1.doingRealThings();
}
}