Java implémente le rappel
Les développeurs qui connaissent les modèles de conception MS-Windows et X Windows passent généralement un pointeur à la source de l'événement et appellent cette méthode lorsqu'un événement se produit (également connu sous le nom de "rappel"). Le modèle orienté objet de Java ne prend actuellement pas en charge les pointeurs de méthode, et il semble que ce mécanisme pratique ne peut pas être utilisé.
Java prend en charge l'interface et le même rappel peut être implémenté via l'interface. L'astuce consiste à définir une interface simple et à déclarer une méthode qui est rappelée par celle souhaitée.
Par exemple, supposons qu'un événement soit informé lorsqu'il se produit, nous pouvons définir une interface:
Interface publique IntéresticEvent {// Ce n'est qu'une méthode ordinaire, qui peut recevoir des paramètres ou renvoyer la valeur publique void intéressantEvent ();} De cette façon, nous avons une poignée de poignée qui implémente cet objet de classe d'interface.
Lorsqu'un événement se produit, l'objet qui met en œuvre l'interface intéressante-événement doit être notifié et la méthode intéressante-demande () doit être appelée.
classe EventNotifier {private intéressantEvent, c'est-à-dire; Boolean privé quelque chose de réunissant; Public EventNotifier (événement intéressant devenant) {ie = event; Quelque chose de fait coincer = false; } public void Dowork () {
if (quelque chose de pain) {
// Lorsqu'un événement se produit, informez l'interface en appelant cette méthode
c'est-à-dire InterestingEvent ();
}
}
}Dans cet exemple, quelque chose de co-rappelé est utilisé pour marquer si un événement se produit.
La classe qui souhaite recevoir des notifications d'événements doit implémenter l'interface intéressante et transmettre sa propre référence à l'événement Notificateur.
La classe publique CallMe implémente intéressant Envent {private EventNotifier en; public callMe () {// Créez un nouvel objet de notification d'événement et le transmettez-le en = new EventNotifier (this); } // Implémentez la méthode de gestion des événements réellement lorsqu'un événement se produit public void intéressantEvent () {// Cet événement se produit, le traiter}}Ce qui précède est un exemple très simple pour illustrer l'implémentation des rappels en Java.
Bien sûr, plusieurs objets intéressés par cet événement peuvent également être enregistrés dans la classe de gestion d'événements ou de notification d'événements.
1. Définir une interface intéressante-vision, et la méthode de rappel UnknownEvent (Événement de chaîne) reçoit simplement un paramètre de chaîne.
Interface intéressantEvent {public void intéressantEvent (événement de chaîne);}2. Implémentez l'interface intéressante et la classe de traitement d'événements
Class CallMe implémente intéressant Event {nom de chaîne privée; public callMe (String name) {this.name = name; } public void intéressantEvent (événement de chaîne) {System.out.println (name + ": [" + événement + "] Couping"); }} 3. Gestionnaire d'événements ou notification d'événement
class EventNotifier {private list <callme> callmes = new ArrayList <malme> (); public void Regist (callme callme) {callmes.add (callme); } public void Dowork () {for (callme callme: callmes) {callme.interestingEvent ("exemple événement"); }}}4. Test
classe publique CallMetest {public static void main (String [] args) {EventNotifier ren = new EventNotifier (); CallMe a = new CallMe ("callme a"); CallMe b = new CallMe ("callme b"); // Regiest Ren.Regist (A); Ren.Regist (B); // tester Ren.Dowork (); }}Ce qui précède est une introduction au mécanisme de rappel Java. Les étudiants dans le besoin peuvent y faire référence.