課程
/后端開發
/Java
/模式的秘密---代理模式
為什么cartime跟carlog實現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這兩個代理類都實現了Moveable接口,同時要重寫move方法
car汽車類也實現了Moveable接口的move方法,car類中的move方法只實現了汽車行駛的功能,并不實現記錄時間和日志的功能。
重點來了,我們在main方法中調用move方法的時候其實是嵌套調用了,一層層的來調用的,main方法中clp先調用move方法時,先是執行自己實現的move方法里的操作,然后執行ctp的move方法里的操作,最后執行car對象本身的行駛操作。
舉報
本節課程將帶你領略Java編程語言中代理模式的奧妙
3 回答jdk動態代理的問題
3 回答關于JDK動態代理的問題
1 回答使用Proxy靜態方法創建的是一個代理類?
1 回答關于動態代理
1 回答動態代理作業
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-03-08
測試類代碼:
cartime和carlog是兩個代理類,他們分別為car代理了記錄時間和日志的功能
cartime和carlog這兩個代理類都實現了Moveable接口,同時要重寫move方法
car汽車類也實現了Moveable接口的move方法,car類中的move方法只實現了汽車行駛的功能,并不實現記錄時間和日志的功能。
重點來了,我們在main方法中調用move方法的時候其實是嵌套調用了,一層層的來調用的,main方法中clp先調用move方法時,先是執行自己實現的move方法里的操作,然后執行ctp的move方法里的操作,最后執行car對象本身的行駛操作。