Heim >Java >javaLernprogramm >Wie erstelle ich ein benutzerdefiniertes Ereignissystem in Java mithilfe des Observer-Musters?
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!