最も観察者の歴史を理解しやすいとの観測パターン--Javaを説明するためにオブザーバー、観察可能なクラスが来ます

コードは、Java SDKで見つかった会社のレビューは、実際にオブザーバーと観測可能なクラスが来るこれらの日は、私の驚きに、ほとんどは、プロセス内の情報を検索することができます。好奇心の心と仕事した後、ビットを使用して、実際に私は非常に使いやすいことがわかりました。ここにも何全体練習を記録するためにブログを書きます。

最初の住宅や物語の読者を公開という点で、理解を容易にするために:むかしむかし、人気の出版社との忠実な読者のグループがあり、新しい本の各プレスは、読者は手紙を受け取ることになります。その後、インターネット時代には、より良い読者を提供するためには、出版社が、それぞれの本の発売をシステムのセットを用意し、システムが自動的に読者に本を配布する、読者も本を受け取った後、プレスに報告します。

このシステムは、それを達成する方法であるので、我々はそれが必要に分割する必要があります:

モーメントが読者を見つめたので、最初は、主な分布として、出版社で、視聴者は、読者に配布帳情報を担当する情報源として全体の流通過程、されている必要があります。

読者に続いて、受信本体情報として、常にすぐにメッセージが表示されます、出版社の本の出版限り、出版社の動きを観察し、また書籍の出版社にレポートを受け取ることになります。ここでは、オブザーバーオブザーバーとしてそれらを置きます。

さて、話は終わっ、あなたはMengganを拾って起動することができます。

話は安いです、私のコードを示しています。最初に少しのコードを貼り付け

public class Reader implements Observer {

	@Override
	public void update(Observable o, Object arg) {
		// TODO Auto-generated method stub
		System.out.println("Observable:" +o.getClass()+ "get:" + arg.toString());
	}

}

オブザーバーオブジェクトデータ更新時刻、ここでのJavaネイティブインタフェースがあり、我々は唯一、に使用された場合、更新メソッドの内部で実装する必要がありますが、全体のプロセスを完全に自動化され、内部の観察可能なクラスのコールバックで開催されます。

次に、プレスを見て

public class Publisher extends Observable {
	
	public void setData(){
		this.setChanged();
	}
	
	
}

出版社は我々は、我々はソースコードを見ることで、setDataメソッドで観察プロテクトは、このデータ変更通知機能を使用できるようにするために、我々はSDKパッケージ外からアクセスできない手段、変更されたことがわかり、ここで観察可能なクラスを継承しましたここにsetDataメソッドをオーバーライドして、対応するデータ・スイッチを変更するsetChanged方法を呼び出し、データスイッチであるものにとして、我々は最初に気にしない、通知の過程で、データの変更をチェックする親メソッドに引き渡されます。

まあ、今基底クラスが書かれた、私たちのシステム稼働してみましょう

public class ObserverTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Publisher publisher = new Publisher();
		Reader reader1 = new Reader();
		Reader reader2 = new Reader();
		publisher.addObserver(reader1);
		publisher.addObserver(reader2);
		publisher.setData();
		publisher.notifyObservers("收到图书");
		System.out.println("ObserverCount:" + publisher.countObservers());
	}
}

上記のコードでは、我々はいくつかの合計を作りました:

  1. 出版社オブジェクトを作成しました
  2. 我々は2人の熱心な読者を得ました
  3. 熱心な聴衆はメッセージに2人の読者がメッセージを受信するためのボタンを押して、送信するために、出版社のケアに参加しました
  4. 押して、すぐにアクション、本の出版を持っていた、とのニュースを公開することは、メッセージをプッシュする準備ができて、スイッチを引っ張りました。
  5. 押して、特定のメッセージのプッシュアクションを作るために:本が受信:あなたがメッセージを受信した場合、私に教えて、読者に伝えます
  6. 最後に、プレス読者の統計情報ビット。

最後に、最後そこに何が起こったかで見てみましょう:

Observable:class observerTest.Publisherget:收到图书
Observable:class observerTest.Publisherget:收到图书
ObserverCount:2

ルック、読者は本を受け取った、と押して、完成完璧な書籍出版プロセスに対応しました。

ここでは、とも話を終えました。キャストストーリーは、私たちはこの物語の性質がされているものを、考えるように戻って?

それは我々がコールバックと呼ばれるものを、観測者とそれのオブザーバーデザインパターンであってもよいです。

私の意見では、観測者とオブザーバーデザインパターンは、観察者の行動を登録することができ、アクションの中核であり、この物語の中でアクションに参加するリーダーのケアの出版社です。以下、このアクションは、誰もが2をリンク、ましてやコールバックされます方法がないことがあります。

まあ、終わっ物語は、あなたはまだ、このデザインパターンを理解しますか?

公開された41元の記事 ウォンの賞賛8 ビュー20000 +

おすすめ

転載: blog.csdn.net/huma8848888/article/details/97551947