Création d'un événement personnalisé en Java
En Java, le modèle d'observateur peut être utilisé pour implémenter un système d'événements personnalisé. Voici comment procéder :
Création d'une interface d'écoute d'événements
La première étape consiste à définir une interface qui sera implémentée par toutes les classes intéressées par la réception d'événements. Par exemple, vous pourriez avoir une interface appelée HelloListener qui possède une méthode pour répondre à un événement « bonjour ».
Création d'une classe d'émetteur d'événement
Ensuite, créez un classe qui émettra les événements. Cette classe doit avoir une méthode pour ajouter des écouteurs d'événement et une méthode pour déclencher l'événement.
Création d'une classe d'écoute d'événement
Maintenant, créez une classe qui recevra le événements et y répondre. Cette classe doit implémenter l'interface d'écoute d'événements et fournir une implémentation pour la méthode de réponse.
Putting It All Together
Pour utiliser le système d'événements, créez une instance du classe d'émetteur d'événements et ajoutez-y des écouteurs d'événements. Lorsque vous souhaitez déclencher un événement, appelez la méthode de déclenchement sur l'émetteur d'événement. Les auditeurs d'événements seront avertis et répondront en conséquence.
Exemple de code
Voici un exemple d'utilisation du modèle d'observateur pour créer un système d'événements personnalisé en Java :
import java.util.*; interface HelloListener { void someoneSaidHello(); } class Initiater { private List<HelloListener> listeners = new ArrayList<>(); public void addListener(HelloListener toAdd) { listeners.add(toAdd); } public void sayHello() { System.out.println("Hello!!"); for (HelloListener hl : listeners) hl.someoneSaidHello(); } } class Responder implements HelloListener { @Override public void someoneSaidHello() { System.out.println("Hello there..."); } } class Test { public static void main(String[] args) { Initiater initiater = new Initiater(); Responder responder = new Responder(); initiater.addListener(responder); initiater.sayHello(); // Prints "Hello!!!" and "Hello there..." } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!