寫在前面:
大神和diao炸天的親請繞道..
關于代理模式的概念這裡省去,大家可以放鳥盡情搜..
關于為什麼叫動态代理,個人了解是代理的類是在運作時動态生成的,大家也可以參考網上的了解..
文筆很差,是以文字較少,都在代碼和注釋中..
=======一點不華麗的分割線-------------------------
開門見山,lets go..
java中可以通過jdk提供的 Proxy.newProxyInstance靜态方法來建立動态代理對象,下面先來看看這個方法的實作
下面通過個例子來說明下:
先來定義一個接口,jdk的動态代理基于接口來建立代理類,不能基于類的原因是java不支援多重繼承,而代理類都會繼承Proxy類(個人了解).
再來一個具體的實作,在代理模式中可以叫它的執行個體可以叫target,這個是真正執行操作的對象
好,接下來我們來寫個動态代理工廠,根據 不同的target來建立動态代理對象
可以看到這是一個簡單的實作,隻是在真實對象執行前後各打一句資訊..
接下來用一個 main函數來把這些結合起來
ok,小手抖一下,走你,看下執行結果
可以看到在調用代理對象的方法時,添加的額外動作已經生效,接下來我們看下生成的代理類的代碼..
-------------END
by Kevin Fan