課程
/后端開(kāi)發(fā)
/Java
/模式的秘密---代理模式
不太明白,在看源碼時(shí)貌似沒(méi)有這樣的操作。編譯后可以生成一新的類并用于返回,是不是不這樣做達(dá)不到目的嗎?
2014-12-19
源自:模式的秘密---代理模式 3-3
正在回答
您好:
??????? 我們?cè)谡n程中介紹到了靜態(tài)代理,講解他的不足:會(huì)使我們系統(tǒng)內(nèi)的類的規(guī)模增大(類膨脹),并且不易維護(hù);并且由于被代理類和代理類的功能 本質(zhì)上是相同的,被代理類只是起到了中介的作用,這種代理在系統(tǒng)中的存在,導(dǎo)致系統(tǒng)結(jié)構(gòu)比較臃腫和松散。
?????? 為了解決這個(gè)問(wèn)題,所以要?jiǎng)討B(tài)地創(chuàng)建Proxy:在運(yùn)行狀態(tài)中,需要代理的地方,動(dòng)態(tài)地創(chuàng)建一個(gè)Proxy,用完之后,就會(huì)銷毀,這樣就可以避免了Proxy 角色的class在系統(tǒng)中冗雜的問(wèn)題了。
?????? 至于視頻中演示動(dòng)態(tài)代理的產(chǎn)生(生成java文件、編譯class、load到內(nèi)存)是為了更好的讓大家理解產(chǎn)生代理的過(guò)程。當(dāng)然你也可以用開(kāi)元框架ASM、Javassist等 動(dòng)態(tài)的在內(nèi)存中創(chuàng)建等同.class的字節(jié)碼,根據(jù)相應(yīng)的字節(jié)碼轉(zhuǎn)換為class,然后再創(chuàng)建實(shí)例。
?如果你ini
?
如饑似渴的學(xué)習(xí)IN 提問(wèn)者
舉報(bào)
本節(jié)課程將帶你領(lǐng)略Java編程語(yǔ)言中代理模式的奧妙
2 回答如何將jre換成jdk來(lái)編譯?
2 回答老師說(shuō)要把jre1.6換成jdk1.6.因?yàn)閖re1.6不支持什么?
1 回答編譯錯(cuò)誤,感覺(jué)莫名奇妙啊
1 回答ctr.newInstance(new Car());看API該方法的參數(shù)要傳一個(gè)對(duì)象,為什么是被代理類的對(duì)象呢?
1 回答有g(shù)it或者別的途徑可以下載源碼嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2014-12-23
您好:
??????? 我們?cè)谡n程中介紹到了靜態(tài)代理,講解他的不足:會(huì)使我們系統(tǒng)內(nèi)的類的規(guī)模增大(類膨脹),并且不易維護(hù);并且由于被代理類和代理類的功能 本質(zhì)上是相同的,被代理類只是起到了中介的作用,這種代理在系統(tǒng)中的存在,導(dǎo)致系統(tǒng)結(jié)構(gòu)比較臃腫和松散。
?????? 為了解決這個(gè)問(wèn)題,所以要?jiǎng)討B(tài)地創(chuàng)建Proxy:在運(yùn)行狀態(tài)中,需要代理的地方,動(dòng)態(tài)地創(chuàng)建一個(gè)Proxy,用完之后,就會(huì)銷毀,這樣就可以避免了Proxy 角色的class在系統(tǒng)中冗雜的問(wèn)題了。
?????? 至于視頻中演示動(dòng)態(tài)代理的產(chǎn)生(生成java文件、編譯class、load到內(nèi)存)是為了更好的讓大家理解產(chǎn)生代理的過(guò)程。當(dāng)然你也可以用開(kāi)元框架ASM、Javassist等 動(dòng)態(tài)的在內(nèi)存中創(chuàng)建等同.class的字節(jié)碼,根據(jù)相應(yīng)的字節(jié)碼轉(zhuǎn)換為class,然后再創(chuàng)建實(shí)例。
?如果你ini
?