Я моделирую автостоянку на Java.
У меня есть три стека, которые представляют свободные пятна разных размеров в моем классе автостоянки.
public class CarPark {
Stack<Spot> smallSpots;
Stack<Spot> mediumSpots;
Stack<Spot> largeSpots;
Класс Spot содержит глобальныйпеременная SpotSize, которую я определил как enum:
public enum SpotSize {
Small,
Medium,
Large,
}
Теперь у меня есть метод с моим классом CarPark, который берет Vehicle и проверяет правильный стек на наличие пятна, если место доступно, берите его.
Транспортные средства могут быть трех размеров, также маленькие, средние или большие.Транспортное средство маленького размера может поместиться в пятно любого размера, транспортное средство среднего размера может поместиться в пятно среднего или большого размера, а транспортное средство большого размера может поместиться только в пятно большого размера.
У меня вопрос, какой самый эффективный способ (с точки зрения как производительности, так и количества написанного кода) проверки каждого из стеков данного транспортного средства?
Я действительно не хочу делатьчто-то вроде этого:
if(vehicle.getSize().equals(VehicleSize.Small)){
//check small spots
//check medium spots
//check large spots
}
if(vehicle.getSize().equals(VehicleSize.Medium)){
//check medium spots
//check large spots
}
if(vehicle.getSize().equals(VehicleSize.Large)){
//check large spots
}
, потому что это кажется слишком жестко запрограммированным и также не будет масштабироваться, если я решу иметь больше размеров пятен и транспортных средств.