关闭

2.1.2 代理模式

标签: Java程序性能优化
61人阅读 评论(2) 收藏 举报
分类:
使用代理对象完成用户请求,屏蔽用户对真实对象的访问

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

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

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

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

用代理模式实现延迟加载的经典应用在Hibernate框架中
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8923次
    • 积分:508
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:1篇
    • 译文:1篇
    • 评论:13条
    文章分类
    最新评论