动态代理手写实现
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 可以调用随便一个接口
浙公网安备 33010602011771号