オブジェクト(A)があり、オブジェクト(A)自体のスコープにも、そのメンバーのスコープにも属していない別のオブジェクト(B)のメソッドを実行する必要があるとします。
この問題を克服するには、次のいずれかの方法があります。
オブジェクトへの参照を、それを使用する可能性のあるオブジェクトに格納すると、メモリリークが発生する可能性があります
使用する必要がある可能性のあるオブジェクトのゲッターを作成し、そのように使用します(これはおそらくベストプラクティスではありません)。
anObject.getABC().getDEF().getHIG().DoSomething();
オブジェクトの一部を単一のトーンとして定義します。これは良い解決策かもしれませんが、それを覆っているリバリーを使用するときはいつでも、それは苦痛かもしれません、そのサブクラスはオーバーライドされたものでは機能しません。
静的メンバー、おそらく最悪の方法。
私の質問:オブジェクト指向コードを維持しながら、それを行うための最良の方法は何ですか、そして何を考慮に入れるべきですか?
(質問は一般的なOOPに関するものですが、私はJAVAのコード例を好みます)
例:
ユーザーがメニュー上の何かをクリックすると、メニューに関連していないものや、メニューに密接に関連しているものに影響を与えるはずです。
メモリを解放する必要があるconsumeメソッドを持つクラスは、参照であるが直接関連していないオブジェクトにアクセスする必要があります。たとえば、キャンバスに描画された車のオブジェクトは、それ自体と配列から削除する必要があります。 GUIスレッドとは関係のない車のリストを保持します。