デザインパターンの動的プロキシモード

序文

プログラムは、プロキシクラスでの開発の多くを持っていますように、各エージェントクラスは、インタフェースとして機能することができます。
だから我々は、我々は、動的プロキシを使用する必要があり、プロキシクラスを介してプロキシ機能のすべてを完了しようとします

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メソッドがプロキシインタフェースは、インタフェースを実装するプロキシクラスであるすべてのメソッドをコールするときに呼び出される必要がある値を返します

おすすめ

転載: www.cnblogs.com/loveer/p/11300416.html