赞
踩
代理模式,从这个名字其实就能得出一个内容,肯定不是直接操作某个类,而是通过设置代理人来帮助沟通,或者说做事的。
代理模式的含义:
代理模式是指:当某一个类或者对象,不方便直接与外界进行连接,或者说传递数据时,这时候我们就需要设置一个新的类或者对象来作为该类的代理者,代替它完成某些功能,或者说操作。
代理模式的缺点:
注意:可以使用动态代理模式来解决这些问题
这时候一般创建的是静态代理类,因为是在用户创建对象时就已经存在了,这样的话就会有缺点,因为有的时候我们根本不清楚,具体是为哪个类在设置代理类,这时候就可以使用动态代理模式,而动态代理模式的本质其实是用反射的机制来完成操作的。
动态代理主要分为两大类:基于接口的动态代理,基于类的动态代理
代理角色代码:
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; //要求该类实现InvocationHandler接口 public class ProxyInvocationHandler implements InvocationHandler { //组合要被代理的接口(因为不清楚具体的类,所有用object 来代替类的属性) private Object target; public void setTarget(Object target){ this.target=target; } //生成得到代理类 public Object getProxy(){ return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(),this); } //处理代理实例,并返回结果 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return null; } }
说了一下代理角色的的含义和它类与类之间的组合关系,同时也讲解了代理类的代码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。