我目前正在为 uni 做一个火车模拟项目。
这是我的类层次结构:
RollingStock
Coach
FreightCoach
PassengerCoach
SpecialCoach
Engine
DieselEngine
ElectricEngine
SteamEngine
Trainset
我的问题:
- 每个教练都有一个唯一的 ID。然而,Engines 和 Trainsets 共享它们的 ID-Space(“series-name”)。“名称”由RollingStock继承,并且Trainset和Engine都具有“系列”属性。
我创建了一个类“SharedIdSpace”来实现这个功能。但我不太确定如何很好地解决这个问题(TreeMap,...,?)。
现在,我的主要问题是我必须实现以下功能:
"机车车辆可以编成火车。编组时必须遵守以下限制:
- 必须始终在有效列车的开始或结束处设置至少一个机车/列车。
- 组合时,必须始终考虑机车车辆在所需组合点是否具有合适的联轴器。
- 正在组成的机车车辆尚未在另一列火车上使用。 [...] “
我该如何实施?恐怕我没有有用的想法。