代理模式

Posted by Lazy on July 24, 2016

##代理模式

  • 代理模式就是,我们需要做某件事情,我们不去做找个代理人去做,比如去银行,办理开卡,我们不会去做,找银行柜台去做。

我们创建一个公共的接口

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

}

代理模式的应用场景: 如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法: 1、修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。 2、就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。 使用代理模式,可以将功能划分的更加清晰,有助于后期维护!