Maison > Java > javaDidacticiel > Comment créer un système d'événements personnalisé en Java à l'aide du modèle Observer ?

Comment créer un système d'événements personnalisé en Java à l'aide du modèle Observer ?

Barbara Streisand
Libérer: 2024-12-04 18:06:18
original
682 Les gens l'ont consulté

How to Create a Custom Event System in Java Using the Observer Pattern?

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..."
    }
}
Copier après la connexion

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