日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java实现的代理的两种办法

發(fā)布時(shí)間:2024/4/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现的代理的两种办法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

代理的名詞

代理對(duì)象 增強(qiáng)后的對(duì)象

目標(biāo)對(duì)象 被增強(qiáng)的對(duì)象

他們不是絕對(duì)的,會(huì)根據(jù)情況發(fā)生變化

?

靜態(tài)代理

繼承

代理對(duì)象繼承目標(biāo)對(duì)象,重寫(xiě)需要增強(qiáng)的方法;

缺點(diǎn):會(huì)代理類(lèi)過(guò)多,非常復(fù)雜

聚合

目標(biāo)對(duì)象和代理對(duì)象實(shí)現(xiàn)同一個(gè)接口,代理對(duì)象當(dāng)中要包含目標(biāo)對(duì)象。

缺點(diǎn):也會(huì)產(chǎn)生類(lèi)爆炸,只不過(guò)比繼承少一點(diǎn)點(diǎn)

總結(jié):如果在不確定的情況下,盡量不要去使用靜態(tài)代理。因?yàn)橐坏┠銓?xiě)代碼,就會(huì)產(chǎn)生類(lèi),一旦產(chǎn)生類(lèi)就爆炸。

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

自己模擬的動(dòng)態(tài)代理

不需要手動(dòng)創(chuàng)建類(lèi)文件(因?yàn)橐坏┦謩?dòng)創(chuàng)建類(lèi)文件,就會(huì)產(chǎn)生類(lèi)爆炸),通過(guò)接口反射生成一個(gè)類(lèi)文件,然后調(diào)用第三方的編譯技術(shù),動(dòng)態(tài)編譯這個(gè)產(chǎn)生的類(lèi)文件成class文件,繼而利用UrlclassLoader(因?yàn)檫@個(gè)動(dòng)態(tài)產(chǎn)生的class不在工程當(dāng)中所以需要使用UrlclassLoader)把這個(gè)動(dòng)態(tài)編譯的類(lèi)加載到j(luò)vm當(dāng)中,最后通過(guò)反射把這個(gè)類(lèi)實(shí)例化。

缺點(diǎn):首先要生成文件

缺點(diǎn):動(dòng)態(tài)編譯文件 class

缺點(diǎn):需要一個(gè)URLclassloader

軟件性能的最終體現(xiàn)在IO操作

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

通過(guò)接口反射得到字節(jié)碼,然后把字節(jié)碼轉(zhuǎn)成class native openJDK c++

?

總結(jié)

以上是生活随笔為你收集整理的java实现的代理的两种办法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。