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

Observer パターンを使用して Java でカスタム イベントを実装するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-21 18:00:18192ブラウズ

How Can I Implement Custom Events in Java Using the Observer Pattern?

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

カスタム イベントは、多くのプログラミング シナリオで不可欠であり、コンポーネントが特定のトリガーに基づいて相互に通信できるようにします。この記事は次の点に対処することを目的としています:

問題点

特定のイベントに基づいたオブジェクト間の対話を容易にするために、Java でカスタム イベントを実装するにはどうすればよいですか?

ソリューション

Observer デザイン パターンは、カスタム イベントを管理するためのエレガントなソリューションを提供しますジャワでは。 Observer パターンの概要は次のとおりです。

  • Observable: イベントのサブスクライバーを管理するクラスのインターフェイスを定義します。
  • Observer:イベントの通知を受け取るクラスのインターフェイスを定義します。 observables.

サンプル実装

次のコード スニペットは、Observer パターンを使用してカスタム イベントを作成する方法を示しています。

import java.util.*;

// Observer interface - defines what an Observer should respond to
interface HelloListener {
    void someoneSaidHello();
}

// Observable class - defines how an Observable manages Observers
class Initiater {
    private List<HelloListener> listeners = new ArrayList<>();

    // Method to add observers
    public void addListener(HelloListener toAdd) {
        listeners.add(toAdd);
    }

    // Method to notify observers
    public void sayHello() {
        System.out.println("Hello!!");
        for (HelloListener hl : listeners) {
            hl.someoneSaidHello();
        }
    }
}

// Observer class - defines how an Observer responds to events
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();

        initiater.addListener(responder);
        initiater.sayHello();
    }
}

実行

いつ上記のコードを実行すると、イニシエーター (オブザーバブル) とレスポンダー (オブザーバー) のオブジェクトが作成されます。イニシエーターはレスポンダーをオブザーバーとして追加し、「hello」イベント (sayHello()) を起動すると、レスポンダーは通知を受け、割り当てられたアクションで応答します。これは、Observer パターンを使用した Java でのカスタム イベントの実装を示しています。

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

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