动态代理
- 什么是代理
- 程序为什么需要代理
- 例子
- 如何创建代理对象
- 应用场景
什么是代理
程序为什么需要代理
对象如果认为身上干的事太多,可以通过代理来转移部分职责;
对象有什么方法想被代理,代理就一定要有对应的方法
使用接口实现,生成代理
例子
创建代理工具类ProxyUtil
使用静态方法createProxy产生代理:
使用Proxy.newProxyInstance();可以得到一个代理对象
需要三个参数:
ClassLoader,用于指定一个类加载器,写法固定;
Class<?>[] interfaces,指定生成的代理长什么样子,也就是有哪些方法
InvocationHandler,用来制定生成的代理对象要干什么事情
可简化:
测试类:
运行结果: