Heim >Java >javaLernprogramm >Wie kann ich mithilfe des Observer-Musters benutzerdefinierte Ereignisse in Java erstellen und verarbeiten?

Wie kann ich mithilfe des Observer-Musters benutzerdefinierte Ereignisse in Java erstellen und verarbeiten?

Linda Hamilton
Linda HamiltonOriginal
2024-12-04 02:38:10953Durchsuche

How Can I Create and Handle Custom Events in Java Using the Observer Pattern?

Benutzerdefinierte Ereignisse in Java erstellen

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!

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