关于铁路系统建模的问题
Question about modelling a railway system
我目前正在处理一项任务,我必须在 java(大学项目)中构建一个铁路模拟项目。
There are three types of rolling stock: wagon, locomotive and multiple unit.
All types of the rolling stock have a name and a length.
In addition, there are also three types of wagons and locomotives.
Here 是我创建的一个简单的 UML 图。
现在,我还得实现这个“功能”:
"The multiple unit ID is composed according to the same rules as for locomotives. For this reason, locomotives and multiple units share the same ID space. A multiple unit has a special type of coupling and can therefore only be composed with the same series of multiple units"
机车和动车组使用相同 ID space 的最佳方法是什么?
这是一个好的模型还是我应该改用接口?我将不胜感激反馈和提示。提前致谢!
What is the best way to use the same ID space for locomotives and multiple units?
没关系,只要是独一无二的。只需使用一个序列号,或者,如果您想要一个不绑定到单个计数器的序列号,请使用一个完全随机的序列号(128 位或更多位)。为什么不在使用时使用 standard。
您应该问自己的一个问题是:这个 ID 会用在货车上吗?如果是这样,一个简短的静态序列号(或字符串)肯定更有意义。可能会有一些 registration body,所以在这种情况下,您的中央柜台就在那里。 永远不要忘记检查您的模型是否与现实世界相符!
用传输类型作为 ID 的前缀是有道理的,尽管在那种情况下我认为它不再真正使用相同的 space。
Is this a good model or should I use interfaces instead? I would appreciate feedback and tips.
编辑:错了,我以为所有机车车辆都会有一个 ID!!!
不行,这样也行,毕竟你是对ID进行操作的。并且您可能要为所有子 classes 添加其他类似的功能到机车车辆。请注意,许多环境都有方法来 提取 接口并替换对该接口的现有引用。重构不是您想要做的事情,但它会在您需要时出现。
编辑:
如果您只有机车和机车车辆的 ID,那么有两种选择。最好的办法可能是插入一个中间摘要 class,它定义了一个 IdentifyableRollingStock
中间 class。还有其他选项,例如创建可选 ID 或使用装饰器模式。如果货车不能被识别有点奇怪,在荷兰我很确定所有机车车辆都是可识别的。
我只是想知道是否所有机车车辆真的都有一个 名称。我可以看到一些货车只有一个号码。那是另一个现实世界的支票。
加时赛
A multiple unit has a special type of coupling and can therefore only be composed with the same series of multiple units"
写这篇文章的人应该被射入轨道。好吧,让它成为国际空间站。兜兜转转...
我目前正在处理一项任务,我必须在 java(大学项目)中构建一个铁路模拟项目。
There are three types of rolling stock: wagon, locomotive and multiple unit.
All types of the rolling stock have a name and a length.
In addition, there are also three types of wagons and locomotives.
Here 是我创建的一个简单的 UML 图。
现在,我还得实现这个“功能”:
"The multiple unit ID is composed according to the same rules as for locomotives. For this reason, locomotives and multiple units share the same ID space. A multiple unit has a special type of coupling and can therefore only be composed with the same series of multiple units"
机车和动车组使用相同 ID space 的最佳方法是什么?
这是一个好的模型还是我应该改用接口?我将不胜感激反馈和提示。提前致谢!
What is the best way to use the same ID space for locomotives and multiple units?
没关系,只要是独一无二的。只需使用一个序列号,或者,如果您想要一个不绑定到单个计数器的序列号,请使用一个完全随机的序列号(128 位或更多位)。为什么不在使用时使用 standard。
您应该问自己的一个问题是:这个 ID 会用在货车上吗?如果是这样,一个简短的静态序列号(或字符串)肯定更有意义。可能会有一些 registration body,所以在这种情况下,您的中央柜台就在那里。 永远不要忘记检查您的模型是否与现实世界相符!
用传输类型作为 ID 的前缀是有道理的,尽管在那种情况下我认为它不再真正使用相同的 space。
Is this a good model or should I use interfaces instead? I would appreciate feedback and tips.
编辑:错了,我以为所有机车车辆都会有一个 ID!!!
不行,这样也行,毕竟你是对ID进行操作的。并且您可能要为所有子 classes 添加其他类似的功能到机车车辆。请注意,许多环境都有方法来 提取 接口并替换对该接口的现有引用。重构不是您想要做的事情,但它会在您需要时出现。
编辑:
如果您只有机车和机车车辆的 ID,那么有两种选择。最好的办法可能是插入一个中间摘要 class,它定义了一个 IdentifyableRollingStock
中间 class。还有其他选项,例如创建可选 ID 或使用装饰器模式。如果货车不能被识别有点奇怪,在荷兰我很确定所有机车车辆都是可识别的。
我只是想知道是否所有机车车辆真的都有一个 名称。我可以看到一些货车只有一个号码。那是另一个现实世界的支票。
加时赛
A multiple unit has a special type of coupling and can therefore only be composed with the same series of multiple units"
写这篇文章的人应该被射入轨道。好吧,让它成为国际空间站。兜兜转转...