私は複数のプロジェクトでこの問題に繰り返し遭遇しました。その構造の外部のオブジェクトと通信する必要があるオブジェクト (構造の奥深くにネストされた) になってしまいます。
現在、Hud および ObjectsList クラスをインスタンス化する Game クラスがあります。
Hud は、さまざまなヘッドアップ ディスプレイ パネルをインスタンス化し、それ自体が可視の TextField を含む小さなセクションをインスタンス化します。
ObjectsList は、Player クラスを含むさまざまなゲーム オブジェクトをインスタンス化します。
プレーヤーが特定の Hud パネルと通信するには、現在、Game まで一連のカスタム イベントをトリガーする必要があります。次に、ゲームが Hud のメソッドを呼び出し、そのメソッドが適切な Hud パネルのメソッドを呼び出します。
これはかなり不格好で非効率的です。Player に Hud への参照を渡すことができます。これは、Player が Hud を「持つ」と言えるからです。しかし、それは密結合ですか?そして、このコードを他の場所で再利用する必要はないと考えていることを考えると、それは問題でしょうか?
また、Observer パターンを使用して、Hud パネルを登録して Player からの更新をリッスンすることもできますが、Player と hud パネルの両方がゲームにすぐにアクセスできない場合、これはどこで管理されますか?
それとも、すべてのインスタンス化をゲームで行ってから、構造を「構成」する必要がありますか?
これらの一見ぎこちなくネストされた構造が発生する理由が理解できないのか、それとも単に必要な副産物なのかを知りたいと思っています。
そして、私が提案した構造に根本的な問題がある場合は、実用的な代替手段が何であるかを知っていただければ幸いです(私は独学のコーダーであるため、できれば専門用語のない言語で)。
乾杯。