动态代理

发布时间 2023-03-28 21:10:35作者: Linqylin

1、特点:无侵入式的给代码增加额外的功能

2、程序为什么需要代理?代理长什么样子?

对象如果嫌身上干的事太多,可以通过代理来转移部分职责。

对象有什么方法想被代理,代理就一定有对应的方法。代理里面就是对象要被代理的方法。

中介如何知道要派有唱歌、跳舞方法的代理呢?

通过接口知道

Java通过接口保证代理的样子,后面的对象和代理需要实现同一个接口,接口中就是被代理的所有方法。

 

如下图所示:

 

 

3、动态代理的实现

 

 

 参数一:类加载器为当前代理类的加载器,如当前代理类为ProxyUtil,则类加载器为ProxyUtil.class.getClassLoader()

参数二:如果要代理多个接口的方法,则把接口都放在数组中

例子:

 

动态代理过程如下: