A cópia do código é a seguinte:
importar java.lang.reflect.invocationHandler;
importar java.lang.reflect.method;
importar java.lang.reflect.proxy;
classe pública LogHandler implementa InvocationHandler {
delegado de objeto privado;
Public Object Bind (delegado de objeto) {
this.delegate = delegado;
retornar proxy.newproxyInstance (delegate.getclass (). getClassloader (),
delegate.getClass (). getInterfaces (), isso);
}
@Override
Public Object Invoke (proxy do objeto, método do método, objeto [] args)
lances lançáveis {
Resultado do objeto = nulo;
tentar {
System.out.println ("Método Iniciar:" + Método);
resultado = métod.invoke (delegado, args);
System.out.println ("Método final:" + método);
} catch (Exceção e) {
E.PrintStackTrace ();
}
resultado de retorno;
}
}
A cópia do código é a seguinte:
Public Interface Animal {
public void hello ();
}
O proxy dinâmico é uma forma estendida do modelo de proxy e é amplamente utilizada no design e desenvolvimento de estruturas (especialmente estruturas baseadas em AOP).
A cópia do código é a seguinte:
classe pública Monkey implementa animais {
@Override
public void hello () {
// TODO Method Stub
System.out.println ("Hello");
}
}
A cópia do código é a seguinte:
classe pública principal {
public static void main (string [] args) {
LogHandler LogHandler = new LogHandler ();
Animal Animal = (Animal) LogHandler.Bind (New Monkey ());
animal.Hello ();
}
}