moummm
2017-07-21 10:13
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();
为什么这样子做的话只能输出日志线程,而输出不了时间线程?
				代理的代理,就是将用时间增强过的代理再用日志增强,这样就可以同时输出时间和日志,应该对car的时间增强代理类增强日志功能。看不懂你的ctp和clp的意义何在,你可能将动态代理和静态代理混淆了,你这里的代理处理器还是对时间的增强,并没有对日志增强的代理处理器。(动态代理是依据代理处理器来动态创建代理的。)
				CarTimeProxy 和 Car 类的代码贴出来看看
模式的秘密---代理模式
54903 学习 · 134 问题
相似问题