質問
クラスが相互に通信する方法を理解するのは非常に困難です。私がやっている現在のプロジェクトでは、多くのクラスが非常に深く根付いているため、シングルトンと静的フィールドを作成し始めました(私が得たものから悪い考えです)。
私の問題を表現するのは難しく、他のプログラマと同じようにこの問題はありません。 以下は、プログラムの一部の画像です。 クラス図
-
ex1。 Destinationオブジェクトを作成するときは、Infopanelからの情報が必要です。 InfoPanelで静的ゲッターを作成せずにこれを行う方法は?
-
ex2。 DestinationRoutingはすべてのブランチで使用されます。スターターで作成してから、すべてのブランチに渡す必要がありますか?
これが誰かにとって意味があるかどうかわからない:) すべてのプロジェクトで繰り返し発生する問題です。
解決
ここには情報が少なすぎます。たとえば、 MapPanel
と InfoPanel
をそのままにする必要があるかどうかさえわかりません。デコレータパターンに価値のあるものを試してみたいと思います。リスナーがPanelの子である理由もわかりません。これらのオブジェクトが何であり、これがどのシステムであるかを知る必要があります。
他のヒント
クラス図を確認した後、あなたはオブジェクト指向の問題に手続きマインドセットを適用していると思います。シングルトンには、ドメインモデルのレコードを操作するすべての動作が含まれているように見え、レコードの動作はほとんどありません。
オブジェクトモデルの理解を深めるために、クラスダイアグラムの関係(線)を「is-a」、「has-a」などのいずれかに分類してみます。あなたが持っているものをよりよく見ることができること。
宛先にはInfoPanelからの情報が必要ですが、すべての情報が必要なわけではありません。 InfoPanelではなくDestinationに必要な情報のみを渡すことは可能ですか?
DestinationRoutingクラスでキャプチャされ、シングルトンになる状態を強制している状態は何ですか?その情報は他の場所に属しますか?