ホームページ >Java >&#&チュートリアル >Observer パターンを使用して Java でカスタム イベントを作成および処理するにはどうすればよいですか?

Observer パターンを使用して Java でカスタム イベントを作成および処理するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-04 02:38:10928ブラウズ

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

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

Java では、さまざまなオブジェクトが相互に通信できるようにするカスタム イベントを作成できます。 「オブジェクト 1」が「こんにちは」と発話するなど、特定のイベントを実行するときにアクションをトリガーする必要があり、「オブジェクト 2」が「こんにちは」と返してイベントを承認することで応答するシナリオを考えてみましょう。

これを実現するには、オブザーバー パターンを利用します。以下は、カスタム イベントを作成して処理する方法を示す例です。

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..."
    }
}

この例では、Initiator クラスが「Hello」イベントを起動し、これは Responder クラスによって処理されます。イニシエーターが「こんにちは」と言うと、レスポンダーは「こんにちは」と応答します。

以上がObserver パターンを使用して Java でカスタム イベントを作成および処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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