动态代理
1 只学一个方法
方法的作用:在运行时,动态实现一组指定的接口的实现类对象(在运行时,创建了指定的一组接口的对象)
Proxy.newProxyInstance(Classloader classLoader,Class[] interfaces,InvocationHandler h)
1 方法作用,动态创建实现了interfaces数组中所有指定接口的实现类对象
参数:
ClassLoader:类加载器
它是用来加载器的,把.class文件加载到内存,形成Class对象
class[] interfaces :指定要实现的接口
InvocationHandler :代理对象的大部分方法都会调用InvocationHandler 的invoke()方法
2 动态代理作用
最终是学习AOP(面向切面编程),它与装饰者模式相似,它比装饰者模式灵活
InvocationHandler
public Object invoke(Object proxy.Method method,Object[] args);
在调用对象所实现接口中的方法时调用
Object proxy : 当前对象,即代理对象,在调用谁的方法
.Method method : 当前被调用的方法
Object[] args:实参
目标对象
代理对象
目标方法
代理对象 = 目标对象 + 增强