动态代理手写实现

https://www.jianshu.com/p/58759fef38b8

一个加载器  一个接口  一个myproxy 

  生成  

$proxy0   extends  myproxy  implements  接口

myproxy   implments  InvocationHandler

一个接口是被代理的接口(接口其实也是一个代理 真真实现是子类)  动态代理只是获得了这个接口的 方法method 可以反射知道这个接口的所有信息 和他子类没关系  子类如果实现了接口 就相当于把接口替换成子类了

一个代理类 就是纯粹的代理 里面要实现invoke方法   $proxy0 调用方法时候都会调用invoke这个方法  

这个方法有    参数   : 接口的method,一个接口入参数据  只知道接口的方法的method      如果想method(man,参数)这个man需要从构造方法传入

实际就是生成了一个java文件 经过了编译成class文件 加载到内存里 增强了接口 的method  可以调用随便一个接口

posted on 2018-03-14 23:00  woymy  阅读(634)  评论(0)    收藏  举报

导航