代理模式:
假設有一個類A(實現了InterfaceOne接口),現在再定義一個類AProxy。
如果需要訪問A的某個方法,則通過訪問AProxy中特定方法,由AProxy中的方法(不一定和A的方法對應)來調用A中的相應方法,即AProxy 是A的代理。
jdk的動態代理(Proxy):
即jdk提供了Proxy這個類,實現代理模式。即把 AProxy 和 A綁定起來,當要訪問A的時候,自動先訪問AProxy。
使用方法:
A a = new A();
AProxy a_proxy = new AProxy();
InterfaceOne itf1 =(InterfaceOne ) Proxy.newProxyInstance(a.getClassLoader, a_proxy.getInterfaces,a_proxy),
itf1.func(); // 調用相應的方法之後,就會進入動態代理的invoke之中.
我個人對動態代理中動態的理解是:動態即在java.reflect.Proxy可以綁定 代理類(實現InvocationHandler接口) 和 被代理類.
這種綁定是不需要在編碼的時候就寫死,而是在運行時進行綁定.!
代碼````````````