ノートのコールバック機能とリスナーモード

コールバック関数
コールバック関数は、コールバック関数を実装した呼び出し規約に従って、ユーザーによるaの機能フラグメントです。そのような一般的な定義があります。プログラマーAは、コールバック関数インターフェースを予約し、プログラムをカプセル化するプログラム(プログラムa)を作成しました。Bプログラマーは、bでアプリケーションのメソッドを呼び出します。次に、独自のメソッドbを介したインターフェイスの呼び出しが
例です
。2つのエンティティがあります。抽象インターフェイスコールバック、コールバック担当者(つまり、プログラム)
コールバックインターフェイス(ICallBack)
public interface ICallBack {
public void callBack();
}
コールバック(コールバック関数の呼び出しに使用される
クラスpublic class Caller {
public void call(ICallBack callBack){
System.out.println( "start ...") ;
callBack.callBack();
System.out.println( "end ...");
}
}
コールバックテスト:
public static void main(String [] args){
        Caller call = new Caller();
        call.call(new ICallBack(){


        @Override
        public void callBack(){
            System.out.println( "コールバックはついに成功しました!");
       
        });


}
コンソール出力:
start ...


コールバックはついに成功しました!


終了...
2。イベント監視モード
Javaのイベント監視メカニズムは、次の3つのポイントに要約でき
ます。1。Javaのイベント監視メカニズムには、イベントソース、イベントリスナー、イベントオブジェクトの3つのコンポーネントが含まれます。リスナーは通常、インターフェイスです。コンベンション呼び出しメソッド。
2.イベントソースオブジェクトで操作が発生すると、イベントリスナーのメソッドが呼び出され、メソッドが呼び出されたときにイベントオブジェクトが渡されます。
3.イベントリスナー実装クラスは通常、開発者によって作成されます。開発者は、イベントオブジェクトを介してイベントソースを取得し、イベントソースでの操作を処理します。
リスナーインターフェイス publicinterface
EventListener extends java.util.EventListener {
    //イベント処理
    publicvoid handleEvent(EventObject event);
}
イベントオブジェクト
public class EventObject extends java.util.EventObject {
    private static final long serialVersionUID = 1L;
    public EventObject(Object source){
        super(source);
    }
    public void doEvent(){
        System.out.println( "Notify a event source source:" + this.getSource());
    }


}
イベントソース
public class EventSource {
    / /リスナーリスト、リスナーの登録がこのリストに追加されます
    private Vector <EventListener> ListenerList = new Vector <EventListener>();
    //リスナーを登録し
    ますpublicvoid addListener(EventListener eventListener){
        ListenerList.add(eventListener);
    } //
    登録解除
    publicvoid removeListener(EventListener eventListener){
        ListenerList.remove(eventListener);
    }
  //外部イベントを受け入れる
    publicvoid notifyListenerEvents(EventObject event){        
        for(EventListener eventListener:ListenerList){
                eventListener.handleEvent(event);
        }
    }


}
ここで理解すること:カスタムリスナー実装クラスはjava.util.listenerインターフェイスを実装し、そのインターフェイスメソッドhandleEvent(EventObjectイベント)を提供します。実装は基本的にです正しいイベントオブジェクト処理
   カスタムイベントクラスはjava.util.EventObjectインターフェイスを実装します。イベントオブジェクトの作成には、イベントソースにイベントの特定の動作も含める
   必要があります。イベントソースは特定のビジネスクラスで定義する必要があります。リスナーリストを定義する必要があります。リスナーを追加および削除し、リスナーを定義します。通知メソッド
zopリスナーは次のことを理解します。 リスナーインターフェイスの定義zoplistenerはjava.util.listenerインターフェイスを継承します(これは特徴的で意味がありません) 、2つのリスナーLoggerListenerとMassageListenerを定義し、handlerEvent(ZopEventイベント)メソッドを実装します(ZopEventはEventObject
クラスに基づいており、プロパティは拡張されています。オブジェクトソースに加えて、イベントタイプString eventType(ログイン、クエリを含む)があります。 ...)および送信オブジェクトオブジェクトデータ)。これ
は、システムのユーザの操作を監視し、操作を生成するためのものです。ログ。同時に、リスナーサポートクラスZopListenerSupportを定義します。これは、リスナーによって追加されたメソッドとイベントをトリガーする通知メソッドを定義するリスナーのリストを提供します(実際には、
リスナーは、リスナーの実際のリストトラバーサルのイベントハンドラーを呼び出し、各リスナーのhandleEvent())を呼び出します。同時に、構成によってリスナークラス構成を定義し、Bean
はリスナーがクロスクラスZoplistenerSupportの作成をサポートすることに注意します。 Beanコンテナとそれを管理します(ここでのサポートクラスの作成は、リスナーリストの初期化でもあります)。

おすすめ

転載: blog.csdn.net/u011445756/article/details/80174602