課程
/后端開發
/Java
/模式的秘密---代理模式
如何在jdk動態代理的中實現多個代理?(時間代理,日志代理)
2015-11-03
源自:模式的秘密---代理模式 3-2
正在回答
//jdk動態代理測試類 public?static?void?main(String?[]args)?{ Car?car=new?Car(); InvocationHandler?h1=new?TimeHandler(car); Class<?>?time=car.getClass(); /** *?loader??類加載器 *?interface??實現接口 *?h??InvocationHandler */ //返回代理類的一個實例,返回后的代理類可以當作被代理類使用 Moveable?t=(Moveable)Proxy.newProxyInstance(time.getClassLoader(),?time.getInterfaces(),h1);// t.move(); InvocationHandler?h2=new?LogHandler(t); Class<?>?log=t.getClass(); Moveable?l=(Moveable)Proxy.newProxyInstance(log.getClassLoader(),?log.getInterfaces(),h2); l.move();
Car car = new Car();
InvocationHandler time = new TimeHandler(car);
Class<?> cls = car.getClass();
Moveable m = (Moveable) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), time);
m.move();
System.out.println("****************************");
// 獲得Car的TimeHandler代理類后,繼續獲得代理類的代理,即對代理類進行再代理
InvocationHandler log = new LogHandler(m);
Class<?> proxyCls = m.getClass();
Moveable l = (Moveable) Proxy.newProxyInstance(proxyCls.getClassLoader(), proxyCls.getInterfaces(), log);
l.move();
舉報
本節課程將帶你領略Java編程語言中代理模式的奧妙
1 回答在第二章jdk動態代理中 要實現多事物的處理處理,測試類要如何編寫?
3 回答JDK動態代理 如何疊加求解
3 回答jdk動態代理的問題
5 回答jdk動態代理實現作業怎么寫
2 回答jdk代理
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-08-02
2018-09-04
Car car = new Car();
InvocationHandler time = new TimeHandler(car);
Class<?> cls = car.getClass();
Moveable m = (Moveable) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), time);
m.move();
System.out.println("****************************");
// 獲得Car的TimeHandler代理類后,繼續獲得代理類的代理,即對代理類進行再代理
InvocationHandler log = new LogHandler(m);
Class<?> proxyCls = m.getClass();
Moveable l = (Moveable) Proxy.newProxyInstance(proxyCls.getClassLoader(), proxyCls.getInterfaces(), log);
l.move();
2016-02-11
如何在jdk動態代理的中實現多個代理?(時間代理,日志代理)