jdk动态代理支持

一、静态代理

静态代理本身是一种好的编程思想,但是并不是良好的设计模式,Proxy类对程序扩展支持有限,几乎不支持太大的扩张。

二、动态代理

动态代理的意思是说:在程序运行时动态生成Proxy类,jdk里面,对动态生成Proxy提供了两个支持的类:

        1.interface InvocationHandler 
                Object invoke(Object proxy, Method method, Object[] args) 
只这一个方法,后面再说。

        2. class Proxy

                Class<?> getProxyClass(ClassLoader loader, Class<?>[] interface)  

                用来产生代理类,参数要提供interface作为代理接口。该Proxy会生成interface的虚实现,用来冒充真实的虚对象。

                Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) 

                用来产生代理对象,与上一个API相比,多了一个Invocationhandler参数,该参数与代理对相关联,当请求分发到

                代理对象后,会执行 h.invoke 方法

                 A接口有c方法,类B实现A接口,原本应该是执行B类中的c方法,可现在不这样做; 我声明产生B类的代理类B',由它来冒充B类的“兄弟”并“实现”A接口, 对外界来说B'应该也有c方法,可当真正调用它的时候, 它会去执行与它关联InvocationHandler的invoke()方法, 在这个方法里面你可以做很多事情。这样,这个请求就被“代理”到其它地方去了。

参考自:http://langyu.iteye.com/blog/410071

参考自:http://blog.csdn.net/lovelion/article/details/8116704

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值