ホームページ >Java >&#&チュートリアル >Java でカスタム イベントを作成して使用する方法は?

Java でカスタム イベントを作成して使用する方法は?

DDD
DDDオリジナル
2024-12-02 00:40:09990ブラウズ

How to Create and Use Custom Events in Java?

Java カスタム イベントの作成

オブジェクトの対話に特定のイベントが関与する応答メカニズムを確立しようとする場合、実行可能なソリューションとしてオブザーバー パターンが浮上します。 。このパターンを利用すると、オブジェクトは対象のイベントをサブスクライブでき、それらのイベントが発生すると、適切なアクションを実行するように通知されます。

Java 実装

検討次のコード スニペットは、例:

import java.util.*;

// HelloEvent: Represents an event of "Hello"
class HelloEvent {
    private String message;
    
    public HelloEvent(String message) {
        this.message = message;
    }
    
    public String getMessage() {
        return message;
    }
}

// HelloListener: Interface for objects interested in "Hello" events
interface HelloListener {
    void onHello(HelloEvent event);
}

// Initiater: Publishes "Hello" events
class Initiater {
    private List<HelloListener> listeners = new ArrayList<>();
    
    public void addListener(HelloListener listener) {
        listeners.add(listener);
    }
    
    public void sayHello(String message) {
        HelloEvent event = new HelloEvent(message);
        
        for (HelloListener listener : listeners) {
            listener.onHello(event);
        }
    }
}

// Responder: Subscribes to "Hello" events
class Responder implements HelloListener {
    @Override
    public void onHello(HelloEvent event) {
        System.out.println("Hello there! " + event.getMessage());
    }
}

public class CustomEventExample {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();
        
        initiater.addListener(responder);
        
        initiater.sayHello("Good morning!");  // Prints "Hello there! Good morning!"
    }
}

説明

この例では、HelloEvent クラスがイベント データ (この場合は挨拶メッセージ) をカプセル化します。 HelloListener インターフェイスは、イベント通知を処理するためにサブスクライバーが実装する必要があるメソッドを定義します。 Initiator は、イベントをトリガーし、サブスクライバーのリストを維持するオブジェクトを表します。レスポンダーは、「Hello」イベントが発生したときに応答するサブスクライバーです。

CustomEventExample クラスは、カスタム イベントを作成、公開、サブスクライブする方法を示します。イニシエータがsayHello メソッドを呼び出すと、HelloEvent が起動され、これがレスポンダによって受信されて処理されます。

このアプローチは、Java アプリケーション内のオブジェクト間のイベント駆動型通信を確立する柔軟な方法を提供します。

以上がJava でカスタム イベントを作成して使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。