0

私は自分の Java アプリケーションの UML ダイアグラムを作成していますが、次の疑問に遭遇しました。

Information というクラスがあります。その属性は、その種類によって異なりますNode

例えば:

の場合Node = TrafficLight、情報には光の色が含まれます。
ただし、 の場合Node = Signal、最大速度が含まれます。

UML とコードの両方で、どのように実装できますか?


回答ありがとうございます。いくつか試してみて、解決策を投稿します。

4

3 に答える 3

0

それが私が最終的にやったことです:

addNode(nodeType) というメソッドを作成します

addNode(nodeType){

   switch (nodeType){
      case trafficlight:
         new TrafficLight //call one constructor
      case signal:
         new Signal //call other constructor
   }  
}

ご協力いただきありがとうございます!

于 2013-10-08T09:18:57.773 に答える
0

Node は Information オブジェクトの子であると仮定します。この場合、Node が取りうる結果ごとにオブジェクトが必要になります。これを説明できる最善の方法は...

package.name.Node
  |
  |_package.name.Node.Information
     |
     |_Information.TrafficLight(String color)
     |
     |
     |_Information.Signal(Double speed)

それが役立つことを願っています。私は長い間 Java でプログラミングしていませんが、たまたまこれに遭遇し、大学で似たようなことをしたことを思い出しました ^_^; それは単なるUMLなので、私が自分を馬鹿にしているわけではないと仮定すると、彼からプロジェクトをどこに進めるかのアイデアを得ることができるはずです。私が言ったように、助けようとしているだけです。

于 2013-10-07T15:01:27.670 に答える
0

Java のコンストラクターでメソッドのオーバーロードを呼び出すことができます。

public class myClass{
    public myClass(){
       //do something
    }
    public myClass(String someInput){
        this.someInput=someInput;     
    }
 }
于 2013-10-07T15:04:39.310 に答える