当前位置: 移动互联网学院 > Java培训 > JAVA开发 > 深入理解java中的动态代理
深入理解java中的动态代理 时间:2017-09-05     来源:互联网

代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。今天华清Java学院小编就和大家一起来深入理解Java中的动态代理

1、java中的动态代理要实现一个InvocationHandler接口并实现其中的invoke方法代码如下:

深入理解java中的动态代理1

2. 在写一个main方法看如何调用:

深入理解java中的动态代理2

3. 现在我们来看为什么personProx.getClass().getName()得到的名字会是$Proxy0

深入理解java中的动态代理3

 

4. 通过反编译工具打开$Proxy0.class文件(为了简介我把其中一些代码删掉了)

深入理解java中的动态代理4

 

通过这样分析我们就明白了原来是jdk动态为我们生成了一个$Proxy0类,并在该类中通过反射得到了Person接口中的方法,然后把我们实现了InvocationHandler接口的类赋值给了Proxy类中的h,因此当调用personProx.say()的时候就调到自己写的DynamicProx类中了

X