我正在为我的Java应用程序做一个UML图,我遇到了以下疑问:
我有一个名为Information的类,它的属性取决于它是什么类型的Node
。
例如:
如果Node = TrafficLight
,信息将包含灯光的颜色
但是如果Node = Signal
,它将包含最大速度。
如何在UML和代码中实现它?
谢谢大家的回答,我会尝试其中的一些,我会发布解决方案!
答案 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
}
}
感谢您的帮助!