根据其他参数更改类构造函数

时间:2013-10-07 14:50:16

标签: java uml

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

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

例如:

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

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


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

3 个答案:

答案 0 :(得分:0)

我将假设Node是Information对象的子代。在这种情况下,您可能需要Node的每个可能结果的对象。我能解释的最好方法是......

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

我希望有所帮助。请记住,我在很长一段时间内没有用Java编程,但我碰巧在这期间发生过这样的事情,并记得在大学里做类似的事情^ _ ^;因为它只是UML,你应该能够从他那里了解你的项目去哪里,假设我不仅仅是在欺骗自己。就像我说的那样,只是想帮忙。

答案 1 :(得分:0)

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

public class myClass{
    public myClass(){
       //do something
    }
    public myClass(String someInput){
        this.someInput=someInput;     
    }
 }

答案 2 :(得分:0)

这就是我最终做的事情:

创建一个名为addNode(nodeType)的方法

addNode(nodeType){

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

感谢您的帮助!