Если у меня есть следующий код:
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();
}
}
}
Мой вопрос в том, как правильно сделать инверсию управления здесь? Я не хочу добавлять бетоны KillerRobot и StandardRobot в класс Factory, не так ли? И я не хочу вводить их через IoC.Get<> верно? до н.э., это было бы расположением службы, а не истинным IoC, верно? Есть ли лучший способ решить проблему переключения бетона во время выполнения ?