代理模式一般在下列场景使用:
需要对原有方法进行改进,又不要影响原有的方法。
此时生成一个代理类调用原有的方法,对产生的结果进行控制,这就叫做代理模式。
public interface Sourceable { public void method(); }
public class Source implements Sourceable { @Override public void method() { System.out.println("the original method!"); } }
public class Proxy implements Sourceable { private Source source; public Proxy(){ super(); this.source = new Source(); } @Override public void method() { before(); source.method(); atfer(); } private void atfer() { System.out.println("after proxy!"); } private void before() { System.out.println("before proxy!"); } }
public class ProxyTest { public static void main(String[] args) { Sourceable source = new Proxy(); source.method(); } }
before proxy! the original method! after proxy!