Heim > Java > javaLernprogramm > Wie erstelle und verwende ich benutzerdefinierte Ereignisse in Java?

Wie erstelle und verwende ich benutzerdefinierte Ereignisse in Java?

DDD
Freigeben: 2024-12-02 00:40:09
Original
927 Leute haben es durchsucht

How to Create and Use Custom Events in Java?

Erstellung benutzerdefinierter Java-Ereignisse

Beim Versuch, einen Reaktionsmechanismus zu etablieren, bei dem Objektinteraktionen bestimmte Ereignisse beinhalten, erweist sich das Observer Pattern als praktikable Lösung . Mithilfe dieses Musters können Objekte Ereignisse von Interesse abonnieren, und bei Eintreten dieser Ereignisse werden sie benachrichtigt, um entsprechende Maßnahmen zu ergreifen.

Java-Implementierung

Bedenken das folgende Code-Snippet als Beispiel:

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!"
    }
}
Nach dem Login kopieren

Erklärung

In diesem Beispiel kapselt die HelloEvent-Klasse die Ereignisdaten (in diesem Fall eine Begrüßungsnachricht). Die HelloListener-Schnittstelle definiert die Methode, die Abonnenten implementieren müssen, um Ereignisbenachrichtigungen zu verarbeiten. Initiator stellt das Objekt dar, das das Ereignis auslöst und eine Liste von Abonnenten verwaltet. Responder ist der Abonnent, der antwortet, wenn ein „Hallo“-Ereignis auftritt.

Die CustomEventExample-Klasse zeigt, wie benutzerdefinierte Ereignisse erstellt, veröffentlicht und abonniert werden. Wenn der Initiator die Methode sayHello aufruft, löst er ein HelloEvent aus, das vom Responder empfangen und verarbeitet wird.

Dieser Ansatz bietet eine flexible Möglichkeit, eine ereignisgesteuerte Kommunikation zwischen Objekten in Java-Anwendungen einzurichten.

Das obige ist der detaillierte Inhalt vonWie erstelle und verwende ich benutzerdefinierte Ereignisse in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage