大家注意了,这个老师说错了。
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
这边的Proxy不是被代理的对象,通常是InvocationHandler的具体实现类,在这个例子当中就是TimeHandler,这也是为什么这个参数叫proxy的原因,因为通常InvocationHandler本身就是一个Proxy。
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
这边的Proxy不是被代理的对象,通常是InvocationHandler的具体实现类,在这个例子当中就是TimeHandler,这也是为什么这个参数叫proxy的原因,因为通常InvocationHandler本身就是一个Proxy。
2015-08-31
最新回答 / 慕慕1768425
从目的上区分:装饰者模式的目的是想要增强自身能力,也就是说这个能力是我想要的,很乐意接受的,并且会因此去学习。 代理模式是我需要这个功能,但是这个功能不值得我花时间去学习, 只要完成目的就行了,就像明星和经济人一样,明星自己不需要去学习怎么拉赞助,拉广告,有经济人去干就行了,我只管唱歌。所以,装饰者:明星自己去学习拉广告,拉赞助。代理模式:明星找经济人去干 * 静态代理和装饰者模式的代码一样,你可以理解为,行为方式一样,但是目的不一样。
2015-08-19
作业也没讲啊! 而且我感觉动态代理还是要 1 个功能写1 个类 比如 代理时间我要写个CarTimeXXX 代理日志 我又得写个CarLogXXX 的类 跟静态代理有什么区别?
2015-08-16