繁体   English   中英

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

[英]Change a class constructor depending on other parameters

我正在为我的Java应用程序制作UML图,但遇到以下疑问:

我有一个名为Information的类,它的属性取决于它是哪种Node

例如:

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

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


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

我将假定Node是Information对象的子级。 在这种情况下,您需要为Node可能产生的每个结果提供一个对象。 我能解释的最好方法是...

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

希望对您有所帮助。 请记住,我已经很长时间没有使用Java编程了,但是我偶然遇到了这种情况,并记得在大学里做过类似的事情^ _ ^; 因为它只是UML,所以您应该能够从他的项目中了解到您的项目的去向,并假设我不只是自欺欺人。 就像我说的,只是想提供帮助。

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

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

那就是我最终所做的:

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

addNode(nodeType){

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

谢谢你的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM