Heim >Java >javaLernprogramm >Wie kann ich mithilfe des Observer-Musters benutzerdefinierte Ereignisse in Java erstellen und verarbeiten?
In Java ist es möglich, benutzerdefinierte Ereignisse zu erstellen, um verschiedenen Objekten die Kommunikation miteinander zu ermöglichen. Stellen Sie sich ein Szenario vor, in dem ein „Objekt 1“ eine Aktion auslösen muss, wenn es ein bestimmtes Ereignis ausführt, beispielsweise „Hallo“, und „Objekt 2“ reagiert, indem es das Ereignis bestätigt, indem es im Gegenzug „Hallo“ sagt.
Um dies zu erreichen, können Sie das Beobachtermuster nutzen. Nachfolgend finden Sie ein Beispiel, das zeigt, wie benutzerdefinierte Ereignisse erstellt und verarbeitet werden:
import java.util.*; // Define an interface for event listeners interface HelloListener { void someoneSaidHello(); } // Class that initiates the event (Object 1) class Initiater { private List<HelloListener> listeners = new ArrayList<>(); // Add an event listener public void addListener(HelloListener toAdd) { listeners.add(toAdd); } // Trigger the event public void sayHello() { System.out.println("Hello!!"); // Notify all listeners for (HelloListener hl : listeners) hl.someoneSaidHello(); } } // Class that listens to the event (Object 2) class Responder implements HelloListener { @Override public void someoneSaidHello() { System.out.println("Hello there..."); } } // Main class class Test { public static void main(String[] args) { Initiater initiater = new Initiater(); Responder responder = new Responder(); // Attach a listener to the initiator initiater.addListener(responder); // Trigger the event initiater.sayHello(); // Prints "Hello!!!" and "Hello there..." } }
In diesem Beispiel löst die Initiater-Klasse ein „Hallo“-Ereignis aus, das von der Responder-Klasse verarbeitet wird. Wenn der Initiator „Hallo“ sagt, antwortet der Antwortende mit „Hallo.“
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe des Observer-Musters benutzerdefinierte Ereignisse in Java erstellen und verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!