0

我正在为我的 Java 应用程序做一个 UML 图,我遇到了以下疑问:

我有一个名为 Information 的类,它的属性取决于Node它是什么类型。

例如:

如果Node = TrafficLight,信息将包含光的颜色。
但如果Node = Signal,它将包含最大速度。

我如何在 UML 和代码中实现它?


谢谢大家的回答,我会尝试其中一些,我会发布解决方案!

4

3 回答 3

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

这就是我最终所做的:

创建一个名为 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

您可以在 java 中的构造函数上调用方法重载。

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