代理模式
来源:互联网 发布:cities skylines mac 编辑:程序博客网 时间:2024/06/16 04:43
代理模式:
1.代理模式的特征是代理类与委托类实现同样的接口(一般情况下)或者代理类继承委托类。
2.代理类主要负责给委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等
3.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象相关联
4.代理类的对象本身并不真正实现功能,而是通过调用委托类的对象的相关方法,来提供特定的功能(所以实现同样的接口才可以保证方法名相同)
5.代理类一般分为两类:静态代理和动态代理
一、静态代理
在程序运行前,代理类的.class文件就已经存在了
例如:
二、动态代理
在程序运行时,代理类是运用了反射技术或字节码技术动态创建而成的
动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。
动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为使用它可以生成任意类型的动态代理类
例如:
三、CGLIB代理
1.代理模式的特征是代理类与委托类实现同样的接口(一般情况下)或者代理类继承委托类。
2.代理类主要负责给委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等
3.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象相关联
4.代理类的对象本身并不真正实现功能,而是通过调用委托类的对象的相关方法,来提供特定的功能(所以实现同样的接口才可以保证方法名相同)
5.代理类一般分为两类:静态代理和动态代理
一、静态代理
在程序运行前,代理类的.class文件就已经存在了
例如:
接口文件:
委托类:
代理类:
测试例子:
二、动态代理
在程序运行时,代理类是运用了反射技术或字节码技术动态创建而成的
动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。
动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为使用它可以生成任意类型的动态代理类
例如:
接口文件:
委托类:
代理类:
日志类:
测试类:
三、CGLIB代理
JDK动态代理要求目标类实现接口,才能对其进行代理,但是对于没有实现接口的类,可以使用CGLib进行动态代理
如图:
目标对象:
代理类: 测类试:
阅读全文
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- LeetCode 131. Palindrome Partitioning
- 在web上面显示地图并定位
- 关于Python中re模块的详细使用说明
- Python编程入门学习笔记——列表
- spring aop实现权限控制
- 代理模式
- 大小写转换
- 结合JsBarcode文档整理出来的一个demo,完全够用,生成和打印条形码
- WCF中的Binding模型之二: 信道与信道栈(Channel and Channel Stack)
- LeetCode——Symmetric Tree
- Java与数据结构(五) 二叉树
- 【量化小讲堂-Python&Pandas系列05】极简方法将日线数据转为周线、月线或其他周期
- mysql 命令行 查看版本命令
- 内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程)