コードは、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());
}
}
上記のコードでは、我々はいくつかの合計を作りました:
- 出版社オブジェクトを作成しました
- 我々は2人の熱心な読者を得ました
- 熱心な聴衆はメッセージに2人の読者がメッセージを受信するためのボタンを押して、送信するために、出版社のケアに参加しました
- 押して、すぐにアクション、本の出版を持っていた、とのニュースを公開することは、メッセージをプッシュする準備ができて、スイッチを引っ張りました。
- 押して、特定のメッセージのプッシュアクションを作るために:本が受信:あなたがメッセージを受信した場合、私に教えて、読者に伝えます
- 最後に、プレス読者の統計情報ビット。
最後に、最後そこに何が起こったかで見てみましょう:
Observable:class observerTest.Publisherget:收到图书
Observable:class observerTest.Publisherget:收到图书
ObserverCount:2
ルック、読者は本を受け取った、と押して、完成完璧な書籍出版プロセスに対応しました。
ここでは、とも話を終えました。キャストストーリーは、私たちはこの物語の性質がされているものを、考えるように戻って?
それは我々がコールバックと呼ばれるものを、観測者とそれのオブザーバーデザインパターンであってもよいです。
私の意見では、観測者とオブザーバーデザインパターンは、観察者の行動を登録することができ、アクションの中核であり、この物語の中でアクションに参加するリーダーのケアの出版社です。以下、このアクションは、誰もが2をリンク、ましてやコールバックされます方法がないことがあります。
まあ、終わっ物語は、あなたはまだ、このデザインパターンを理解しますか?