簡體   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