Maison > Java > javaDidacticiel > Comment puis-je créer et gérer des événements personnalisés en Java à l'aide du modèle Observer ?

Comment puis-je créer et gérer des événements personnalisés en Java à l'aide du modèle Observer ?

Linda Hamilton
Libérer: 2024-12-04 02:38:10
original
953 Les gens l'ont consulté

How Can I Create and Handle Custom Events in Java Using the Observer Pattern?

Création d'événements personnalisés en Java

En Java, il est possible de créer des événements personnalisés pour permettre à différents objets de communiquer entre eux. Considérons un scénario dans lequel un « objet 1 » doit déclencher une action lorsqu'il exécute un événement spécifique, comme prononcer « bonjour », et « l'objet 2 » répond en reconnaissant l'événement en disant « bonjour » en retour.

Pour y parvenir, vous pouvez utiliser le modèle d'observateur. Vous trouverez ci-dessous un exemple qui montre comment créer et gérer des événements personnalisés :

import java.util.*;

// Define an interface for event listeners
interface HelloListener {
    void someoneSaidHello();
}

// Class that initiates the event (Object 1)
class Initiater {
    private List<HelloListener> listeners = new ArrayList<>();

    // Add an event listener
    public void addListener(HelloListener toAdd) { listeners.add(toAdd); }

    // Trigger the event
    public void sayHello() {
        System.out.println("Hello!!");

        // Notify all listeners
        for (HelloListener hl : listeners)
            hl.someoneSaidHello();
    }
}

// Class that listens to the event (Object 2)
class Responder implements HelloListener {
    @Override
    public void someoneSaidHello() { System.out.println("Hello there..."); }
}

// Main class
class Test {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();

        // Attach a listener to the initiator
        initiater.addListener(responder);

        // Trigger the event
        initiater.sayHello();  // Prints "Hello!!!" and "Hello there..."
    }
}
Copier après la connexion

Dans cet exemple, la classe Initiater déclenche un événement « Hello », qui est géré par la classe Responder. Lorsque l'initiateur dit « bonjour », le répondeur répond par « bonjour ».

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal