2.1.2 代理模式

使用代理對象完成用戶請求,屏蔽用戶對真實對象的訪問

本節應用:實現延遲加載,提升性能(只是應用場景的一種),系統啓動時初始化代理類,等真正用時再加載真實資源

參與者:
     主題接口,定義代理類和真實主題的公共對外方法,也是代理類代理真實主題的方法
     真實主題,實現業務邏輯的類
     代理類,代理和封裝真實主題
     客戶端,使用代理類和主題接口

靜態代理(與動態代理區分,寫好代碼)
     一種實現:客戶端依賴主題接口(使用主題接口),真實主題和代理類都實現主題接口,代理類聚合真實主題(包含了真實主題),圖和代碼見書P17

動態代理(代理類的字節碼將在運行時生成並載入到當前ClassLoader)
1.JDK自帶的動態代理
     代碼見P18
2.CGLIB(推薦)
     使用方法類似JDK的動態代理
3.Javassist(推薦)
     代理工廠創建方法與CGLIB類似(性能差)
     動態代碼創建方法
4.ASM(本書沒提)
     要求最高,性能最好,但沒有數量級的提升

用代理模式實現延遲加載的經典應用在Hibernate框架中
發佈了42 篇原創文章 · 獲贊 10 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章