2009-04-29 5 views
1

私は、クラスがどうやって互いにコミュニケーションをとる必要があるかを考え出すのは非常に困難です。私がやっている現在のプロジェクトでは、多くのクラスが非常に深くなってきているので、シングルトンや静的なフィールドを(これを得るのは悪い考えから)回り始めます。現在のプロジェクトでOODを理解するのを手伝ってください

私の問題を表現するのは難しいので、他のプログラマのようにこの問題はありません。 Class diagram

  • EX1: は、ここにプログラムの一部の画像です。 Destinationオブジェクトを作成すると、Infopanelからの情報が必要になります。 InfoPanelで静的ゲッターを作成せずにこれを行う方法は?

  • ex2。 DestinationRoutingはすべてのブランチで使用されます。私は実際にスターターでそれを作って、それをすべての枝で渡す必要がありますか?

これは誰:) そのプロジェクトごとにreacurringされる問題に理にかなっているかどうかわかりません。

+0

imageshackは私のような多くの企業ネットワークによってブロックされているため、図は表示できません。あなたが悩んでいることについてもっと具体的なことを教えてもらえますか? – Geoff

答えて

0

ここには情報が少なすぎます。たとえば、私はMapPanelInfoPanelのようにするべきかどうかはわかりません。私はデコレータパターンに価値があるかどうか試してみるように誘惑されるでしょう。なぜリスナーがパネルの子であるのか分かりません。これらのオブジェクトが何で、どのようなシステムであるかを知る必要があります。

+0

これはgooglemapのようなMapRoutingのアプリケーションです。 メインフレーム:フレームなので、自分のアプリケーションを見ることができます。 MapPanel:地図を表示するパネル。 InfoPanel:ユーザーがテキストfxで宛先を入力できるようにするPanel。 リスナー:ボタンを押すか、パネルを拡大するときに何かが起こるように使用されます。基本的にパネルに機能を与えます。 RouteClicking:マウスがどこにあるかに応じて新しい目的地を作成し、DestinationRoutingに追加して、A→B→C→D ...の順に移動します。 WorldRoute:ルート全体です。すなわち、 A→B→C→D、普通のルートはあくまでA-> B –

+0

私がやっていることは、すべてのタスクを新しいオブジェクトに委譲していると思います。 詳細情報が必要な場合は教えてください:) –

+0

MVCの候補を上位から探します。 – dirkgently

1

クラスダイアグラムを見て、OO問題に手続き的な考え方を適用していると思います。シングルトンには、ドメインモデルのレコードに作用するすべての動作が含まれているように見え、レコードにはほとんど動作がありません。

あなたのオブジェクトモデルをよりよく理解するために、クラス図の関係(線)を「is-a」、「has-a」などのように分類しようとします。あなたはあなたが持っているものをよく見ることができます。

宛先にはInfoPanelの情報が必要ですが、すべての情報には該当しません。 InfoPanelの代わりに必要な情報だけをDestinationに渡すことは可能ですか?

DestinationRoutingクラスでキャプチャされている状態は、シングルトンに強制されますか?その情報は他の場所に属していますか?

+0

has-aまたはis-a関係はありません。私はその仕事を新しい物に委ねているようです。 はい、Destinationオブジェクトを作成するためにInfoPanelから1つのフィールドだけが必要です。経由地経由で目的地を取得する。 MapPanelが問題です。 宛先を追加または削除すると、DestinationRoutingはすべての宛先を追跡します。私はそれをシングルトンにして、簡単にアクセスできるようにしました。 –

関連する問題