Maison >Java >javaDidacticiel >Comment créer et utiliser des événements personnalisés en Java ?

Comment créer et utiliser des événements personnalisés en Java ?

DDD
DDDoriginal
2024-12-02 00:40:09932parcourir

How to Create and Use Custom Events in Java?

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

Lorsque vous tentez d'établir un mécanisme de réponse où les interactions d'objets impliquent des événements spécifiques, le modèle d'observateur apparaît comme une solution viable. . En utilisant ce modèle, les objets peuvent s'abonner à des événements qui les intéressent et, dès l'apparition de ces événements, ils seront avertis pour prendre les mesures appropriées.

Implémentation Java

Envisagez l'extrait de code suivant comme exemple :

import java.util.*;

// HelloEvent: Represents an event of "Hello"
class HelloEvent {
    private String message;
    
    public HelloEvent(String message) {
        this.message = message;
    }
    
    public String getMessage() {
        return message;
    }
}

// HelloListener: Interface for objects interested in "Hello" events
interface HelloListener {
    void onHello(HelloEvent event);
}

// Initiater: Publishes "Hello" events
class Initiater {
    private List<HelloListener> listeners = new ArrayList<>();
    
    public void addListener(HelloListener listener) {
        listeners.add(listener);
    }
    
    public void sayHello(String message) {
        HelloEvent event = new HelloEvent(message);
        
        for (HelloListener listener : listeners) {
            listener.onHello(event);
        }
    }
}

// Responder: Subscribes to "Hello" events
class Responder implements HelloListener {
    @Override
    public void onHello(HelloEvent event) {
        System.out.println("Hello there! " + event.getMessage());
    }
}

public class CustomEventExample {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();
        
        initiater.addListener(responder);
        
        initiater.sayHello("Good morning!");  // Prints "Hello there! Good morning!"
    }
}

Explication

Dans cet exemple, la classe HelloEvent encapsule les données de l'événement (dans ce cas, un message de bienvenue). L'interface HelloListener définit la méthode que les abonnés doivent implémenter pour gérer les notifications d'événements. Initiateur représente l'objet qui déclenche l'événement et maintient une liste d'abonnés. Le répondeur est l'abonné qui répond lorsqu'un événement « Bonjour » se produit.

La classe CustomEventExample montre comment créer, publier et s'abonner à des événements personnalisés. Lorsque l'initiateur appelle la méthode sayHello, il déclenche un HelloEvent, qui est reçu et traité par le répondeur.

Cette approche offre un moyen flexible d'établir une communication basée sur les événements entre les objets dans les applications Java.

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!

Déclaration:
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