事実:
- マネージャーとスペシャリストという 2 つの主要なクラスがあります。
- スペシャリストにはいくつかの異なるタイプがあります。
- スペシャリストは、自分の仕事を成し遂げるために他のスペシャリストの助けを必要とすることがよくあります。
- マネージャーはすべてのスペシャリストを知っており、最初は各スペシャリストは自分のマネージャーだけを知っています。(これが問題です。)
- 実行時に、Manager はスペシャリストのリストを作成して保存します。次に、マネージャーはリストを繰り返し処理し、各スペシャリストに初期化を依頼します。初期化中、各スペシャリストはマネージャーに、何らかの説明を満たす他のスペシャリストを提供するように依頼します。これが完了すると、マネージャーはループに入り、スペシャリストは専門的なタスクを順番に実行するよう求められます。
これはまともなパターンのように思えますが、マネージャーにはスペシャリストのリストがあり、スペシャリストにはマネージャーがあるため、循環依存の問題が発生しています。
これは、あるクラスの存在を別のクラスから何らかの形で前方宣言する必要がある場合ですか? (そうなら、どのように?) または、この問題を解決するために何らかの設計パターンを使用する必要がありますか? (もしそうなら?) また... 私はパターン自体はかなり大丈夫だったので、これが悪いことである理由を理解するのを手伝ってくれる人を気にしません.