2.1.2 代理模式

使用代理对象完成用户请求,屏蔽用户对真实对象的访问

本节应用:实现延迟加载,提升性能(只是应用场景的一种),系统启动时初始化代理类,等真正用时再加载真实资源

参与者:
     主题接口,定义代理类和真实主题的公共对外方法,也是代理类代理真实主题的方法
     真实主题,实现业务逻辑的类
     代理类,代理和封装真实主题
     客户端,使用代理类和主题接口

静态代理(与动态代理区分,写好代码)
     一种实现:客户端依赖主题接口(使用主题接口),真实主题和代理类都实现主题接口,代理类聚合真实主题(包含了真实主题),图和代码见书P17

动态代理(代理类的字节码将在运行时生成并载入到当前ClassLoader)
1.JDK自带的动态代理
     代码见P18
2.CGLIB(推荐)
     使用方法类似JDK的动态代理
3.Javassist(推荐)
     代理工厂创建方法与CGLIB类似(性能差)
     动态代码创建方法
4.ASM(本书没提)
     要求最高,性能最好,但没有数量级的提升

用代理模式实现延迟加载的经典应用在Hibernate框架中
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值