《
文章目录- 1 、代理者模式
- 1.1、什么是代理模式
- 1.2、为什么要使用代理模式
- 1.3、代理模式的实现
- 1.3.1、静态代理
- 1.3.2、动态代理
- 1.3.2.1、使用 JDK 的 Proxy 类实现动态代理
- 1.3.2.2、使用 CGLIB 实现动态代理
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
1 、代理者模式 1.1、什么是代理模式✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
1.2、为什么要使用代理模式隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类
对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口
开闭原则:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额
外的功能来扩展委托类的功能,这样做我们只需要修改代理类而不需要再修改委托类,符合
代码设计的开闭原则。
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
1.3、代理模式的实现1.3.1、静态代理代理模式可以分为两种:静态代理、动态代理
静态代理模式由三个部分构成:
一个公共的接口
一个被代理角色
一个代理角色
1.3.2.1、使用 JDK 的 Proxy 类实现动态代理在动态代理中分为两种实现方式:
使用 JDK 的 Proxy 类实现动态代理
使用 CGLIB 实现动态代理
CGLIB(Code Generation Library)是一个高性能开源的代码生成包,它被许多框架所使
用,其底层是通过使用一个小而快的字节码处理框架 ASM(Java 字节码操控框架)转换字
节码并生成新的类。因此 CGLIB 要依赖于 ASM 的包。
JDK 的动态代理机制只能代理实现了接口的类,而对于没有实现接口的类就不能使用
JDK 的 Proxy 类生成代理对象,cglib 是针对类来实现代理的,他的原理是对指定的目标类生
成一个子类并通过回调的方式来实现增强,但因为采用的是继承,所以不能对 final 修饰的
类进行代理
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨



