序文
プログラムは、プロキシクラスでの開発の多くを持っていますように、各エージェントクラスは、インタフェースとして機能することができます。
だから我々は、我々は、動的プロキシを使用する必要があり、プロキシクラスを介してプロキシ機能のすべてを完了しようとします
Javaで動的プロキシ機構を実現するために、それが必要であるjava.lang.reflect.InvocationHandler
インターフェイスとjava.lang.reflect.Proxy
サポートクラス
java.lang.reflect.InvocationHandler
次のようにインターフェースが定義されます。
//Object proxy:被代理的对象
//Method method:要调用的方法
//Object[] args:方法调用时所需要参数
public interface InvocationHandler {
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable;
}
java.lang.reflect.Proxy
次のようにクラスが定義されています。
//CLassLoader loader:类的加载器
//Class<?> interfaces:得到全部的接口
//InvocationHandler h:得到InvocationHandler接口的子类的实例
public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException
ダイナミックプロキシクラスができる唯一のプロキシインタフェース(抽象クラスがサポートされていない)、プロキシクラスがメソッドを呼び出す実装する、のInvocationHandlerクラスを実装する必要があります。invokeメソッドは、invokeメソッドがプロキシインタフェースは、インタフェースを実装するプロキシクラスであるすべてのメソッドをコールするときに呼び出される必要がある値を返します