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
Freigeben: 2024-12-04 02:38:10
Original
952 Leute haben es durchsucht

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage