大家注意了,這個老師說錯了。
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