gpt4 book ai didi

java - 如何进行训练作文——类(class)作文

转载 作者:行者123 更新时间:2023-12-01 18:30:54 25 4
gpt4 key购买 nike

我目前正在为大学开发一个火车模拟项目。

这是我的类层次结构:

RollingStock
Coach
FreightCoach
PassengerCoach
SpecialCoach
Engine
DieselEngine
ElectricEngine
SteamEngine
Trainset

我的问题:

  • 每位教练都有一个唯一的 ID。然而,引擎和列车组共享它们的 ID 空间(“系列名称”)。 “Name”由 RollingStock 继承,TrainsetEngine 都具有属性“series”。

我创建了一个“SharedIdSpace”类来实现此功能。但我不太确定如何很好地解决这个问题(TreeMap,...,?)。

现在,我的主要问题是我必须实现以下功能:

机车车辆可以组成火车。组成时必须遵守以下限制:

  • 有效列车的开头或结尾处必须始终至少有一个机车/列车组。
  • 组合时,必须始终考虑机车车辆在所需的组合点是否具有合适的耦合。
  • 正在组成的机车车辆尚未在其他列车中使用。[...]

我该如何实现这个?恐怕我没有什么有用的想法。

最佳答案

我不确定你在问什么,但我会尽力给你我的近似值:

您需要创建一个复合对象,其中每个对象都有唯一的 ID,并且需要通过一些验证。

我将实现一个“StoregeManager”和“ComposerManager”,并在“RollingStock”中添加一个抽象 validator 方法,以验证是否可以添加 vagon。

流程将是这样的:

免责声明这是用Java编写的,但是用notepad++编写,请不要检查sintaxis。


RollingStock freightCoach = StoregeManager.getFreightCoach();
RollingStock specialCoach = StoregeManager.getSpecialCoach();
RollingStock dieselEngine = StoregeManager.getDieselEngine();

// Check if they are null or throw an exception if has no more elements. Maybe from BBDD or from where you want

Composer.compone()
.add(dieselEngine)
.add(freightCoach)
.add(specialCoach)
.build()

在 componer 内部,是这样的:


public class Composer {

private StoregeManager storeManager; //Injected or initialized, as you want.
private static Train train;

public Composer build(){
train = new Train;
return this;
}

public Composer add(RollingStock rs) {
if(rs.isValid(train))
train.add(rs);
return this;
}

public RollingStock[] build() {
storageManager.ckeckTrain(train);
return train;
}
}

如果您需要另一个近似值来解决您的问题,您可以将存储放入 Composer 中,并将 vagon 的类名作为参数传递。

希望这对您有帮助。

关于java - 如何进行训练作文——类(class)作文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60167933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com