3

「複合」オブザーバー/オブザーバーを形成するデザインパターンはありますか?つまり、何らかの変更についてリスナーに通知
するオブザーバブルがあります。 各リスナーもオブザーバブルであり、独自のリスナーに通知します(一部のアクションでは、最初のオブザーバブルの通知によってトリガーされたアクションが実行されました)。 オブザーバブル/オブザーバブルのこの「連鎖」は設計としては問題ありませんか、それともこれに対する標準的なパターンがありますか?A

4

2 に答える 2

2

あなたが言った連鎖については、私は何の違いも見ていません。

Observerパターンの目的は、オブジェクトの状態が変更されたときに、関係者(リスナー/オブザーバー)に変更を通知し、状態の変化に応じてリスナーが反応できるようにすることです。

リスナーの状態変化が、設計上、他の関係者によって監視されている場合、イベントの公開にオブザーバーパターンを使用できない理由はわかりません。

しかし、それは単に別の観察者と観察可能な関係です。特別な「連鎖」は発生しません。

少しOT:チェーンと呼ばれるのがより適切なものは次のとおりです。監視対象オブジェクトOはイベントEをリスナーAに送信し、Aはイベントを別のリスナーBに伝播します。ただし、論理的には、すべてOから発生したイベントをリッスンしています。このような「連鎖」は、デコレータパターンを使用して行うことができます。

于 2013-02-28T01:01:18.410 に答える
0

クラスは、オブザーバーとサブジェクトの両方のインターフェースを実装する必要があります。Challangeは、すべてのオブザーバーを適切なオブジェクトに登録しています。
必要なのは、クラスnotifyObservers()notify()メソッドを追加することだけです( wikiへのリンク)。 通知の無限ループを開始できることに注意してください:=> => => =>...など。Observer
ABCA

于 2013-02-27T09:06:15.573 に答える