設計模式 — 動態代理模式
動態代理動態代理0 簡介1 類圖2 示例3 源碼分析0 簡介代理模式有兩種形式:靜態代理、動態代理。1 類圖圖片來源網絡2 示例使
動態代理
0. 簡介
代理模式有兩種形式:靜態代理、動態代理。
1. 類圖
圖片來源網絡
2. 示例
使用JDK中的Proxy類實現動態代理類的創建;
- 1
一般的用法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
輸出結果:
method=public abstract void com.example.demo.IPlay.play(java.lang.String) , args=籃球
由上面可以看出,雖然動態代理生成了接口的代理對象,但是代理類中沒有實際的處理邏輯,而接口的方法也是沒有實際處理邏輯的,所以要添加處理邏輯,只能在PlayProxy.invoke()中添加,這就增加了代碼的耦合性。
注意: 跟靜態代理相比,動態代理要少寫一個代理類,因為該代理類可以通過Proxy.newProxyInstance()
方法獲得。
這里涉及到三個類:
1. IPlay
2. StudentPlay
3. PlayProxy
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
輸出結果:
method=public abstract void com.example.demo.IPlay.play(java.lang.String) , args=籃球
StudentPlay.play(),name=籃球
3. 源碼分析
源碼基于JDK1.8
責任編輯:售電衡衡
免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
-
權威發布 | 新能源汽車產業頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業,設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數據中心 打造融合型綜合能源系統
2020-06-16綜合能源服務,新能源消納,能源互聯網
-
新基建助推 數據中心建設將迎爆發期
2020-06-16數據中心,能源互聯網,電力新基建 -
泛在電力物聯網建設下看電網企業數據變現之路
2019-11-12泛在電力物聯網 -
泛在電力物聯網建設典型實踐案例
2019-10-15泛在電力物聯網案例
-
權威發布 | 新能源汽車產業頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業,設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲能行業發展
-
探索 | 既耗能又可供能的數據中心 打造融合型綜合能源系統
2020-06-16綜合能源服務,新能源消納,能源互聯網 -
5G新基建助力智能電網發展
2020-06-125G,智能電網,配電網 -
從智能電網到智能城市