オブザーバーパターンの22.4 JDKのサポート
でオブザーバーパターンのJava言語の状況は非常に重要です。JDKのjava.utilのパッケージ、それが提供観測クラスとオブザーバー構成インターフェース、JDKは、オブザーバーパターンをサポートします。図22-5以下:
図22-5 JDKが提供観測クラスとオブザーバー図のインターフェース構造。
(1)オブザーバインタフェース
でjava.util.Observerのインターフェース宣言唯一の方法は、次のようにメソッド宣言コードが抽象ビューアとして働きます。
ボイド更新(観測O、オブジェクトのarg); |
観察対象の状態が変化するが、この方法はで呼び出されるときにオブザーバーサブクラスう達成()を更新する方法、即ち、観察者は、異なる特定の更新動作が必要であってもよいです。観察対象クラスが呼び出すときに観測のnotifyObservers()メソッドビューアクラス行わずに更新()メソッド。
(2)観測クラス
java.util.Observableクラスがで、観察対象クラスとして作用する観測ベクトル定義ベクトルがオブザーバオブジェクトを格納され、それは表に記載されている方法が含ま22-1:
表22-1観測クラスは、方法を説明し、含みます
メソッド名 |
方法について説明します |
観測可能() |
コンストラクタはインスタンス化されたベクトルのベクトルを。 |
addObserver(観察者O) |
ベクトルオブジェクトへの新しいビューアにサインアップしてください。 |
deleteObserver(観察者O) |
観測ベクトルのターゲットを削除します。 |
notifyObservers()和notifyObservers(オブジェクトの引数) |
各観測ベクトルサイクルコールの内部メソッドの通知方法更新()メソッド。 |
deleteObservers() |
空のベクターを使用し、すべてのベクトルオブジェクトのオブザーバが削除されます。 |
setChanged() |
この方法は、設定した後に呼び出されるブール型内部フラグ変数変更値をtrueに、観察対象物体の状態が変化していることを示します。 |
clearChanged() |
以下のために変更された変数の値が設定されてfalseに、もはやそのコール、オブジェクトの状態が変更され又は観察者のすべてのオブジェクトに通信した表していない更新()メソッド。 |
変更されました() |
オブジェクトの状態の変更をテストするために使用されます。 |
countObservers() |
ベクトルの数は、観察者を返すために使用しました。 |
私たちは、指示することができオブザーバーインターフェースと観察可能オブザーバーパターンに抽象層としてクラスをした後、特定の視聴者の観察対象クラスと特定のクラスをカスタマイズ使用することにより、JDKにオブザーバーのインターフェースと観察可能で、より簡単に、クラスをすることができますJavaの言語アプリケーションオブザーバモード。