jdk代理
Car car = new Car();
?? ??? ?CarTimeProxy ctp = new CarTimeProxy(car);
?? ??? ?CarLogProxy clp = new CarLogProxy(ctp);
?? ????? InvocationHandler h2= new TimeHandler(clp);
?? ??? ?Class<?> c = car.getClass();
?? ??? ?/*
?? ??? ? * loader:類加載器; interfaces:實現接口; h:InvocationHandler
?? ??? ? */
?? ???? Movable m = (Movable) Proxy.newProxyInstance(c.getClassLoader(),
?? ??? ??? ??? ?c.getInterfaces(), h2);
?? ???? m.Move();
為什么這樣子做的話只能輸出日志線程,而輸出不了時間線程?
2017-07-21
代理的代理,就是將用時間增強過的代理再用日志增強,這樣就可以同時輸出時間和日志,應該對car的時間增強代理類增強日志功能。看不懂你的ctp和clp的意義何在,你可能將動態代理和靜態代理混淆了,你這里的代理處理器還是對時間的增強,并沒有對日志增強的代理處理器。(動態代理是依據代理處理器來動態創建代理的。)
2017-07-21
CarTimeProxy ?和?Car ?類的代碼貼出來看看