爱程序网

浅谈-Java设计模式之静态代理

来源: 阅读:

代理模式(Proxy pattern):当一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。静态代理是具体去实现需要代理对象接口,覆写方法时进行个性化操作。

单独为代理而实现作为某个接口实现类的则为静态代理(Static Proxy)。

不多说了,上代码​

package com.ant;

public interface Hello {

public void say();

}

package com.ant;

public class HelloImpl implements Hello {

@Override

public void say() {

System.out.println("hellw world!");

}

}

package com.ant;

 

public class StaticProxy implements Hello {

private Hello hello;

@Override

public void say() {

System.out.println("staticProxy welcome");

hello.say();

}

public StaticProxy(Hello hello){

this.hello = hello;

}

}

package com.ant;

 

public class StaticProxyTest {

public static void main(String[] args) {

Hello hello = new HelloImpl();

StaticProxy staticProxy = new StaticProxy(hello);

staticProxy.say();

}

}

总结:

静态代理有一个弊端,就是当接口中的方法进行了变更时(新增、删减必要实现方法时),所有的代理类都必须做相应的变更(假设有多个代理类情况下),无疑增加了代码复杂度,复用性低,这个时候就可以有动态代理。

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助