GoF代理模式

代理模式。
优点1:解决了 OCP 问题。
优点2:采用代理模式的 has a ,可以降低耦合度。


*静态代理的缺点是什么?
类爆炸。假设系统中有1000个接口,那么每个接口都需要对应代理类,这样类会急剧膨胀。不好维护。

怎么解决类爆炸问题?
可以使用动态代理来解决这个问题。
动态代理还是代理模式,只不过添加了字节码生成技术,可以在内存中为我们动态的生成一个 class 字节码,这个字节码就是代理类。在内存中动态的生成字节码代理类的技术,叫做:动态代理。

*动态代理
在程序运行阶段,在内存中动态生成代理类,被称为动态代理,目的是为了减少代理类的数量。解决代码复用的问题。

在内存当中动态生成类的技术常见的包括:
. JDK 动态代理技术:只能代理接口。
. CGLIB 动态代理技术: CGLIB ( Code Generation Library )是一个开源项目。是一个强大的,高性能,高质量的 Code 生成类库,它可以在运行期扩展 Java 类与实现 lava 接口。它既可以代理接口,又可以代理类,底层是通过继承的方式实现的。性能比 JDK 动态代理要好。(底层有一个小而快的字节码处理框架 ASM 。)
. Javassist 动态代理技术: Javassist 是一个开源的分析、编辑和创建 Java 字节码的类库。是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶滋)所创建的。它已加入了开放源代码 JBoss 应用服务器项目,通过使用 Javassist 对字节码操作为 JBoss 实现动态" AOP "框架。
 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值