Heim >Java >javaLernprogramm >Wie erstelle ich ein benutzerdefiniertes Ereignissystem in Java mithilfe des Observer-Musters?

Wie erstelle ich ein benutzerdefiniertes Ereignissystem in Java mithilfe des Observer-Musters?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 18:06:18676Durchsuche

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

Erstellen eines benutzerdefinierten Ereignisses in Java

In Java kann das Beobachtermuster verwendet werden, um ein benutzerdefiniertes Ereignissystem zu implementieren. So können Sie es tun:

Erstellen einer Event-Listener-Schnittstelle

Der erste Schritt besteht darin, eine Schnittstelle zu definieren, die von allen Klassen implementiert wird, die am Empfang von Ereignissen interessiert sind. Sie könnten beispielsweise eine Schnittstelle namens HelloListener haben, die über eine Methode zum Reagieren auf ein „Hallo“-Ereignis verfügt.

Erstellen einer Event Emitter-Klasse

Als nächstes erstellen Sie eine Klasse, die die Ereignisse ausgibt. Diese Klasse sollte über eine Methode zum Hinzufügen von Ereignis-Listenern und eine Methode zum Auslösen des Ereignisses verfügen.

Erstellen einer Ereignis-Listener-Klasse

Erstellen Sie nun eine Klasse, die das empfängt Ereignisse erkennen und darauf reagieren. Diese Klasse sollte die Ereignis-Listener-Schnittstelle implementieren und eine Implementierung für die Antwortmethode bereitstellen.

Alles zusammenfassen

Um das Ereignissystem zu verwenden, erstellen Sie eine Instanz von Ereignis-Emitter-Klasse und fügen Sie Ereignis-Listener hinzu. Wenn Sie ein Ereignis auslösen möchten, rufen Sie die Auslösemethode für den Ereignisemitter auf. Die Ereignis-Listener werden benachrichtigt und reagieren entsprechend.

Beispielcode

Hier ist ein Beispiel für die Verwendung des Beobachtermusters zum Erstellen eines benutzerdefinierten Ereignissystems in 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..."
    }
}

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein benutzerdefiniertes Ereignissystem in Java mithilfe des Observer-Musters?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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