課程
/后端開發(fā)
/Java
/模式的秘密---代理模式
為什么cartime跟carlog實現(xiàn)move接口后,就能夠做到對car的代理?有什么深層次的原理嗎?
2017-03-08
源自:模式的秘密---代理模式 2-2
正在回答
測試類代碼:
public?class?Main?{ public?static?void?main(String[]?args)?{ Car?car?=?new?Car(); CarTimeProxy?ctp?=?new?CarTimeProxy(car); CarLogProxy??clp?=?new?CarLogProxy(ctp); clp.move(); } }
cartime和carlog是兩個代理類,他們分別為car代理了記錄時間和日志的功能
cartime和carlog這兩個代理類都實現(xiàn)了Moveable接口,同時要重寫move方法
car汽車類也實現(xiàn)了Moveable接口的move方法,car類中的move方法只實現(xiàn)了汽車行駛的功能,并不實現(xiàn)記錄時間和日志的功能。
重點來了,我們在main方法中調(diào)用move方法的時候其實是嵌套調(diào)用了,一層層的來調(diào)用的,main方法中clp先調(diào)用move方法時,先是執(zhí)行自己實現(xiàn)的move方法里的操作,然后執(zhí)行ctp的move方法里的操作,最后執(zhí)行car對象本身的行駛操作。
舉報
本節(jié)課程將帶你領(lǐng)略Java編程語言中代理模式的奧妙
3 回答jdk動態(tài)代理的問題
3 回答關(guān)于JDK動態(tài)代理的問題
1 回答使用Proxy靜態(tài)方法創(chuàng)建的是一個代理類?
1 回答動態(tài)代理作業(yè)
1 回答關(guān)于動態(tài)代理
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-03-08
測試類代碼:
cartime和carlog是兩個代理類,他們分別為car代理了記錄時間和日志的功能
cartime和carlog這兩個代理類都實現(xiàn)了Moveable接口,同時要重寫move方法
car汽車類也實現(xiàn)了Moveable接口的move方法,car類中的move方法只實現(xiàn)了汽車行駛的功能,并不實現(xiàn)記錄時間和日志的功能。
重點來了,我們在main方法中調(diào)用move方法的時候其實是嵌套調(diào)用了,一層層的來調(diào)用的,main方法中clp先調(diào)用move方法時,先是執(zhí)行自己實現(xiàn)的move方法里的操作,然后執(zhí)行ctp的move方法里的操作,最后執(zhí)行car對象本身的行駛操作。