對JAVA動態代理的理解

devos發表於2014-01-14

叫動態代理就代表著有“靜態代理”這回事。 而且,通常“動態”至少聽著更NB一點。

關鍵就在於不明白啥叫“動”,這個得跟“靜”比較下。

在我的理解,靜態代理得自己宣告一個類,實現跟被代理物件同樣的介面。就是說自己得在編譯之前寫一個類的定義,由於是寫好的,就可以稱為“靜”了。

動態代理呢,Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) 就搞到了一個實現了指定介面的物件, 並沒有在編譯之前寫好代理類, 於是就成了“動態”了。

相關文章