春オブザーバーパターンを使用して

次のようにルーキーの観察者モードにチュートリアルの導入は、次のとおりです。

意図:オブジェクトの状態が変化したが、それに依存するすべてのオブジェクトが自動的に通知され、更新されている定義された被写体の多くの間の依存関係。

:主に解決するために、他のオブジェクトの問題に被写体状態変化通知をも考慮に使用し、低結合の容易さを取るために、コラボレーションの高度を確保します。

使用するときは:オブジェクト(対象物)は、状態を変更し、すべての依存オブジェクト(オブザーバオブジェクト)は、放送通知を通知しなければなりません。

解決方法:オブジェクト指向技術の使用を、この依存関係を弱めることができます。

キーコードは次のとおりです。店舗のArrayListオブザーバーは抽象クラスであります。

応用例:  オークションは、競売は最高価格を観察した後、他の入札者の入札を通知します。 

利点:  1、観察者と観察抽象カップリング。2、トリガー機構を確立します。

短所:  観測されたオブジェクトが、直接および間接的な観察者の多くを持っている場合は1、それはすべてのオブザーバーは、多くの時間を費やす必要が通知されます。2、観測者と観測されたターゲットとの間に循環依存がある場合は、ターゲットを観察するには、クラッシュにシステムを引き起こす可能性があり、それらの間を循環する呼び出しをトリガーします。3、観測モード観測対象のオブジェクトは変更が起こるかであることを、視聴者のノウハウを聞かせて、ちょうどターゲットが変更された観察を知っするメカニズムはありません。

以下は、実際のプロジェクトでObserverパターン春を使用する方法を示します。

以下、このデモフレーム、観察者の直接的な実装、オブザーバーパターン、中間サービス加入管理ビーン、動的登録を介して観察者と比較した場合、視聴者が除去され、状態オブザーバが変更され、意志その後、このサービスに加入し、すべてを通知し、視聴者のサブスクリプション管理サービスを、通知することがオブザーバーです。

継承Observerble Javaインターフェースへのオブザーバーのニーズは、パッケージのutilが付属しており、通知するsetChange()とnotifyObservers()関数を呼び出して観察した(この場合は、ビューアのサブスクリプション管理サービス)、オブザーバサービス、JavaのUtilのパッケージを実装する必要がありますObserverクラス・インターフェース。

 

まず、オブザーバ、必要な観察者の通知、コールsetChange()とnotifyObservers()関数は、notifyObservers関数はパラメータを渡すことができ、視聴者を知らせるためです。

豆のinit初期化関数の後、サブスクリプション管理サービスに観察者にオブザーバを追加します。

 

 

 そして、オブザーバーのサブスクリプション管理サービスは、視聴者の登録、削除機能、オブザーバーステータスの変更、すべてのサブスクライブされたオブザーバーに通知を提供します。

 

 

 

 

 

 

 その後、観察、I Beanのビューアで閲覧者のサブスクリプション管理サービスに登録成功後に作成され、あなたはまた、他の必要なときに、サブスクリプションまたは削除にこのBeanを取得することができます。notifyObserversが上を通過中に関数パラメータを取得することができ、視聴者は、観察者です。

 

 

重要な事柄

オブザーバー、サブスクリプション管理サービスへの通知、ターン通知サブスクリプション管理サービスすべてのオブザーバに変更された後、このプロセスがブロックされている、いくつかの時間のかかる操作を行うにはオブザーバーやオブザーバーのニーズの多くに加入することが可能です長い時間のためのブロック、そう長い時間を遮断避けるために、非同期の方法で使用するビューア。

 

 

 

 

おすすめ

転載: www.cnblogs.com/liangf27/p/11822936.html