Если у меня есть следующий код:
public class RobotNavigationService : IRobotNavigationService {
public RobotNavigationService(IRobotFactory robotFactory) {
//...
}
}
public class RobotFactory : IRobotFactory {
public IRobot Create(string nameOfRobot) {
if (name == "Maximilian") {
return new KillerRobot();
} else {
return new StandardRobot();
}
}
}
Мой вопрос в том, что это правильный способ сделать Inversion of Control здесь? Я не хочу добавлять белки KillerRobot и StandardRobot в класс Factory? И я не хочу приводить их через IoC.Get < > правильно? bc, что будет Service Location не верно IoC правильно? Есть ли лучший способ подойти к проблеме переключения бетона во время выполнения?