2

Cオブザーバーがあり、Aそれに接続されているクラスがありBます。オブザーバーBは、受け取ったオブジェクトの状態を変更し、これを に通知する必要がありますA。これまでは、オブザーバーからクラスCnotifyObservers()を呼び出すだけでしBたが、これにはいくつかの問題があります。

  • わかりにくい
  • B更新が発生したため、2 番目の更新を無視する必要があります

私の最初のアイデアは、 がオブザーバーとしても登録されているB独自のオブザーバーに通知することでした。AB

これを行うより良い方法はありますか?これを達成するために別のパターンを使用する必要がありますか?

4

2 に答える 2

1

たぶん、メディエーターパターンはあなたが探しているものです。

このパターンでは、複数の(異なる)同僚オブジェクト間の通信を処理するディレクターがいます。同僚は自分の監督を直接知っており、監督とのみコミュニケーションを取ります。ディレクターは同僚を管理します。そのため、同僚のオブジェクトを切り離し、通信プロトコルを容易にします。

多分あなたはそれをあなたのニーズに適応させることができます。

于 2012-06-15T06:03:26.600 に答える