La copie de code est la suivante:
import java.lang.reflect.invocationhandler;
import java.lang.reflect.method;
import java.lang.reflect.proxy;
classe publique Loghandler implémente InvocationHandler {
délégué d'objet privé;
objet public bind (objet délégué) {
this.delegate = délégué;
return proxy.newproxyinstance (delegate.getClass (). getClassOader (),
delegate.getClass (). getInterfaces (), this);
}
@Outrepasser
Invoque d'objet public (proxy d'objet, méthode de la méthode, objet [] args)
lance jetable {
Résultat de l'objet = null;
essayer {
System.out.println ("Méthode Start:" + Method);
result = méthode.invoke (délégué, args);
System.out.println ("Méthode End:" + Method);
} catch (exception e) {
e.printStackTrace ();
}
Résultat de retour;
}
}
La copie de code est la suivante:
Animal d'interface publique {
public void hello ();
}
Le proxy dynamique est une forme étendue du modèle de proxy et est largement utilisé dans la conception et le développement de cadres (en particulier les cadres basés sur AOP).
La copie de code est la suivante:
classe publique singe implémente animal {
@Outrepasser
public void hello () {
// Talage de méthode générée automatiquement de TODO
System.out.println ("Hello");
}
}
La copie de code est la suivante:
classe publique Main {
public static void main (String [] args) {
LOGHANDLER LOGHANDLER = NOUVEAU LOGHANDLER ();
Animal animal = (animal) Loghandler.bind (nouveau singe ());
animal.hello ();
}
}