Моя цель - вернуть метод в зависимости от перечисления.В настоящее время я создал фабрику, но она использует корпус переключателя, который мне не нравится.Код работает нормально, но я хочу использовать лучший шаблон и заменить текущий случай переключения.Как бы вы спроектировали это без какого-либо переключателя или если бы (экземпляр) ...
Я также попытался реализовать шаблон Stategy в enum.Но автопроводка бобов невозможна.
Смотрите ниже мой текущий кусок кода.
public enum Car {
AUDI, FORD;
}
public class SuperCar{
private Car car;
}
public class Audi extends SuperCar{
// some other properties
}
public class Ford extends SuperCar{
// some other properties
}
@Service
public class AudiService{
public void save(Audi audi){
// some code
}
}
@Service
public class FordService{
public void save(Ford ford){
// some code
}
}
@Service
public class CarFactory{
private FordService fordService;
private AudiService audiService;
public CarFactory(FordService fordService, AudiService audiService) {
this.fordService = fordService;
this.audiService = AudiService;
}
public void saveCar(SuperCar superCar){
switch(superCar.getCar()):
case AUDI:
return audiService.save((Audi)superCar));
case FORD:
return fordService.save((Ford)superCar));
default:
return null;
}
}
Спасибо за любую помощь.