Я хочу реализовать IOC в своем приложении, но я в замешательстве, в моем приложении у меня есть несколько конкретных классов, которые реализуют интерфейс. Рассмотрим этот сценарий: -
У меня есть Inteface ICommand и следующие конкретные типы, которые реализуют этот интерфейс: -
- AddAddress
- AddContact
- RemoveAddress
- RemoveContact
Обычно пользователь выполняет все это действие в пользовательском интерфейсе, а затем List передается на уровень обслуживания, где выполняется каждая команда.
Так что в слое GUI я напишу
ICommand command1 = new AddAddress();
ICommand command2 = new RemoveContact();
В диспетчере команд
List<ICommand> listOfCommands = List<ICommand>();
listOfCommands.Add(command1);
listOfCommands.Add(command2);
Затем, наконец, передаст listOfCommands слою сервиса.
Теперь, согласно моему пониманию IOC, только один конкретный класс сопоставлен с интерфейсом. И мы используем этот синтаксис для получения нашего конкретного типа из контейнера StructureMap.
ICommand command = ObjectFactory.GetInstance<ICommand>();
Как мне реализовать IOC в этом сценарии?