次の一般的なプログラム構造を検討してください。
- クラスAには、メンバー変数としてクラスBのインスタンスがあります
- クラスBには、クラスCのインスタンスを含むコレクションメンバー変数があります
- クラスAのイベントは、AがBにイベントについて通知するだけでCインスタンスに伝播されます。
クラスCがクラスAに話しかけるインスタンスに関するデザインパターンは何ですか?
1つのオプションは、クラスAがサブスクライブするクラスC投稿通知のインスタンスです。別のオプションは、クラスAへの参照を「チェーンの下流」に渡すことです(AからBに、次にBから各Cに)。この後者のオプションを使用すると、CのインスタンスがAと直接通信できます。