小A:“代理分為哪些類?”
大B:“代理分為靜態代理與動態代理。”
小A:“按功能怎麼分類哩?”
大B:“按功能將代理的組成類分為:標的類、標的接口、攔截類、耦合類。”
下麵以具本代碼舉例說明。
1、靜態與動態代理的公共部分
*TODO標的類
*TODO標的接口
*TODO標的接口
intdo2;
*TODO攔載類
2、靜態代理特征部分
*TODO耦合類(耦合是為了解耦)
//調用真實的標的類的方法之前置入攔載類的方法
//調用真實的標的類的方法
//調用真實的標的類的方法之後置入攔載類的方法
;
*TODO靜態代理(這理隻簡單地講一下,著重講動態代理)
3、動態代理特征部分
*TODO耦合類(耦合是為了解耦)
//更改參數
//調用真實的標的類的方法之前置入攔載類的方法
//調用真實的標的類的方法
//調用真實的標的類的方法之後置入攔載類的方法
;
*TODO測試類
*logic1與logic的共同邏輯
//對目標接口Target1代理的調用
(“對目標接口Target1代理的調用”);
//對目標接口Target2的調用
(“對目標接口Target2代理的調用”);
*正常
*參數1:類加載器(個人感覺這個參數有點多佘,這個參數完成可以去掉,不知當初他們為何要設這個參數幹麼)
*參數2:代理的標的接口。就是說,你要代理的標的類可能會實現多個接口,你可以有選擇性地代理這些接口
*參數3:InvocationHandler的實現類.InvocationHandler接口做用就是解耦,解開標的類與攔載類之間的耦合,使它們之間可以互不關心
*將會出異常,因為他沒有在參數中聲時自己要調用Target2接口,而後麵卻又去調用
*參數1:類加載器(個人感覺這個參數有點多佘,這個參數完成可以去掉,不知當初他們為何要設這個參數幹麼)
*參數2:代理的標的接口。就是說,你要代理的標的類可能會實現多個接口,你可以有選擇性地代理這些接口
*參數3:InvocationHandler的實現類.InvocationHandler接口做用就是解耦,解開標的類與攔載類之間的耦合,使它們之間可以互不關心
logic1;
logic2;
(本章完)