代理模式

一,靜態(tài)代理

針對(duì)于網(wǎng)上大多數(shù)靜態(tài)代理寫(xiě)成裝飾者模式(裝飾著模式和靜態(tài)代理的區(qū)別https://blog.csdn.net/weixin_35609314/article/details/78913635),做了一下總結(jié):
1,被代理的對(duì)象必須是一個(gè)類(lèi),且必須有父接口或者父類(lèi);
2,被代理的類(lèi)需要增強(qiáng)的方法必須在父類(lèi)或者父接口中出現(xiàn);
3,靜態(tài)代理的使用目的是為了保護(hù)和隱藏目標(biāo)對(duì)象,所以代理類(lèi)的無(wú)參構(gòu)造器中就創(chuàng)建目標(biāo)對(duì)象。

二,缺點(diǎn):

1,因?yàn)榇韺?duì)象需要與目標(biāo)對(duì)象實(shí)現(xiàn)一樣的接口,所以會(huì)有很多代理類(lèi),類(lèi)太多
2,如果代理對(duì)象實(shí)現(xiàn)的是接口,父接口中增加方法,目標(biāo)對(duì)象與代理對(duì)象都要維護(hù)
動(dòng)態(tài)代理方式可以解決上述缺點(diǎn)

三,動(dòng)態(tài)代理

也叫jdk代理,java底層封裝了實(shí)現(xiàn)細(xì)節(jié),格式固定,代碼簡(jiǎn)單。直接調(diào)用java.lang.reflect.Proxy的靜態(tài)方法newProxyInstance即可
1,被代理的對(duì)象必須是一個(gè)類(lèi),且必須有父接口;
2,被代理的類(lèi)需要增強(qiáng)的方法必須在父接口中出現(xiàn);
static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces,InvocationHandler h )

四,參數(shù):

1,ClassLoader loader,:指定當(dāng)前目標(biāo)對(duì)象使用類(lèi)加載器,獲取加載器的方法是固定的
2,Class<?>[] interfaces,:目標(biāo)對(duì)象實(shí)現(xiàn)的接口的類(lèi)型,使用泛型方式確認(rèn)類(lèi)型
3,InvocationHandler h:事件處理,執(zhí)行目標(biāo)對(duì)象的方法時(shí),會(huì)觸發(fā)事件處理器的方法,會(huì)把當(dāng)前執(zhí)行目標(biāo)對(duì)象的方法作為參數(shù)傳入

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、代理模式定義:給某個(gè)對(duì)象提供一個(gè)代理對(duì)象,并由代理對(duì)象控制對(duì)于原對(duì)象的訪問(wèn),即客戶不直接操控原對(duì)象,而是通過(guò)代...
    kdong閱讀 423評(píng)論 0 0
  • 聲明:原創(chuàng)作品,轉(zhuǎn)載請(qǐng)注明出處http://www.itdecent.cn/p/e4c1e6b734ad 今天來(lái)...
    蛇發(fā)女妖閱讀 1,759評(píng)論 3 8
  • 目錄:1.代理模式定義&實(shí)現(xiàn)2.裝飾模式定義&實(shí)現(xiàn)3.靜態(tài)代理4.動(dòng)態(tài)代理:JDK動(dòng)態(tài)代理、Cglib動(dòng)態(tài)代理5....
    lbcBoy閱讀 1,719評(píng)論 2 3
  • 60分等于一個(gè)小時(shí) 60分在100分的測(cè)試卷上剛好及格 這是我的60分 不偏不倚的卡在合格的邊緣上,也許這是一個(gè)不...
    彭超奇閱讀 332評(píng)論 0 1
  • 每次見(jiàn)你,心里都會(huì)像有千把刀子在往心里扎一樣的疼。 這樣痛苦的愛(ài),我承受不了了,我不能再愛(ài)你了。
    一禪_578b閱讀 193評(píng)論 0 0

友情鏈接更多精彩內(nèi)容