В настоящее время я работаю над проектом поезда, и у меня есть следующий вопрос:
Я сохраняю весь подвижной состав в списке: Чтобы лучше понять мою иерархию классов, вот упрощенный обзор наследования:
RollingStock
Engine
SteamEngine
DieselEngine
...
Coach
FreightCoach
PassengerCoach
...
TrainSet
В моем реестре я хочу сохранить весь подвижной состав в списке private List<RollingStock> rollingStock;
. Пока что я создал список для каждого типа подвижного состава (двигатели, вагоны, комплекты поездов). Однако мне нужно удалить определенный подвижной состав только с его идентификатором, и поэтому проще сохранить все в одном списке.
Как и раньше, я создал такой движок:
public void createEngine(Engine engine) {
this.engines.add(engine);
}
Теперь, используя только один список, я делаю это так:
public void createEngine(Engine engine) {
this.rollingStocks.add(engine);
}
Это прекрасно работает. Для метода returnEngines () я, похоже, не нашел решения:
Это было так просто, с одним списком для каждого типа подвижного состава:
public List<Engine> returnEngines() {
return engines;
}
Теперь у меня есть чтобы отфильтровать все двигатели из списка подвижного состава:
public List<Engine> returnEngines() {
...
return rollingStock.???;
}
Я мог бы добавить метод public String getType()
и проверить его тип.
Не могу себе представить, что лучшего решения нет.
Как это можно сделать?