代理模式

代理模式:
1.代理模式的特征是代理类与委托类实现同样的接口(一般情况下)或者代理类继承委托类。
2.代理类主要负责给委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等
3.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象相关联
4.代理类的对象本身并不真正实现功能,而是通过调用委托类的对象的相关方法,来提供特定的功能(所以实现同样的接口才可以保证方法名相同)
5.代理类一般分为两类:静态代理和动态代理
一、静态代理
在程序运行前,代理类的.class文件就已经存在了
例如:

接口文件:

委托类:

代理类:

测试例子:


二、动态代理
在程序运行时,代理类是运用了反射技术或字节码技术动态创建而成的
动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。
动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为使用它可以生成任意类型的动态代理类
例如:

接口文件:

委托类:

代理类:

日志类:

测试类:


三、CGLIB代理

JDK动态代理要求目标类实现接口,才能对其进行代理,但是对于没有实现接口的类,可以使用CGLib进行动态代理

如图:

目标对象:

代理类: 测类试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值