代理模式(Proxy)、Java的三种代理模式、静态代理、动态代理(JDK代理,接口代理)、 Cglib 代理(基于继承的方式实现)

参考

https://www.cnblogs.com/qlqwjy/p/7550609.html

代理模式(Proxy)

代理 是一种设计模式,通过 代理对象 访问 目标对象。可以在 目标对象 的基础上,拓展其功能。

这体现了一个重要的编程思想:对修改关闭,对拓展开放

Java的三种代理模式

静态代理

目标对象 和 代理对象要 实现相同的接口,然后通过调用 相同的方法 来 进行代理

动态代理(JDK代理,接口代理)

目标对象 需要 实现接口
代理对象 不需要 实现接口

代理对象的生成,是利用 JDK的API 动态地在内存中构建代理对象
(需要指定 目标对象 实现的接口)

Cglib 代理(基于继承的方式实现)

当目标对象只是一个单独的对象,并没有实现任何的接口时,可以通过 创建目标对象的子类 的方式来实现代理

Cglib 可以在 运行期间 扩展java类 和 实现java接口
Cglib 的底层通过使用一个 小而快的字节码处理框架 ASM 来转换字节码并生成新的类

目标对象的类不能为 final
目标对象的方法不能为 final 或 static 或 private

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值