我正在为我的 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,你应该能够从他那里了解你的项目应该去哪里,假设我不只是在自欺欺人。就像我说的,只是想帮忙。
这就是我最终所做的:
创建一个名为 addNode(nodeType) 的方法
addNode(nodeType){
switch (nodeType){
case trafficlight:
new TrafficLight //call one constructor
case signal:
new Signal //call other constructor
}
}
谢谢你的帮助!
您可以在 java 中的构造函数上调用方法重载。
public class myClass{
public myClass(){
//do something
}
public myClass(String someInput){
this.someInput=someInput;
}
}