设计模式——代理模式
代理(Proxy)是一種設(shè)計模式,提供了對目標(biāo)對象另外的訪問方式;即通過代理對象訪問目標(biāo)對象.這樣做的好處是:可以在目標(biāo)對象實現(xiàn)的基礎(chǔ)上,增強額外的功能操作,即擴展目標(biāo)對象的功能.這里使用到編程中的一個思想:不要隨意去修改別人已經(jīng)寫好的代碼或者方法,如果需改修改,可以通過代理的方式來擴展該方法。
代理模式有3種:靜態(tài)代理,動態(tài)代理和Cglib代理。靜態(tài)代理和動態(tài)代理模式都是要求目標(biāo)對象是實現(xiàn)一個接口的目標(biāo)對象,Cglib代理則可以是獨立的類。
代理模式詳解(包含原理詳解)
?
三種代理模式介紹
代理模式使用場景:
(1)?當(dāng)客戶端對象需要訪問遠(yuǎn)程主機中的對象時可以使用遠(yuǎn)程代理。
?????? (2)?當(dāng)需要用一個消耗資源較少的對象來代表一個消耗資源較多的對象,從而降低系統(tǒng)開銷、縮短運行時間時可以使用虛擬代理,例如一個對象需要很長時間才能完成加載時。
?????? (3)?當(dāng)需要為某一個被頻繁訪問的操作結(jié)果提供一個臨時存儲空間,以供多個客戶端共享訪問這些結(jié)果時可以使用緩沖代理。通過使用緩沖代理,系統(tǒng)無須在客戶端每一次訪問時都重新執(zhí)行操作,只需直接從臨時緩沖區(qū)獲取操作結(jié)果即可。
?????? (4)?當(dāng)需要控制對一個對象的訪問,為不同用戶提供不同級別的訪問權(quán)限時可以使用保護(hù)代理。
?????? (5)?當(dāng)需要為一個對象的訪問(引用)提供一些額外的操作時可以使用智能引用代理。
?
posted on 2017-10-11 15:05 啟示 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/yang-lq/p/7650626.html
總結(jié)
以上是生活随笔為你收集整理的设计模式——代理模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DockOne微信分享( 九十一):打造
- 下一篇: valgrind基础