Этот вопрос немного сложно объяснить, но я постараюсь изо всех сил.Зависимость впрыска через Inteface и структуру проекта
У меня есть проект, где я должен создать пользовательский интерфейс, который получает данные от стороннего сервиса и выполняет десериализацию и работу по управлению потоками.
Теперь моя структура проекта находится под одним решением в визуальной студии:
проекта A: UI
Проект B: API для получения данных от службы третьей стороны
Project C: Нить Управляющий API
Примечание: Проект B имеет интерфейс IB, а C имеет интерфейс IC, который помогает впрыскивать зависимость. Проекты B и C будут использоваться другими командами в будущем.
Проект A использует интерфейсы IB и IC для инъекции зависимостей.
Теперь я изложу свое понимание IOC: DIP говорит, что модуль высокого уровня не должен зависеть от низкоуровневого модуля, и как высокоуровневый, так и низкоуровневый модуль должен зависеть от абстракции. Если вы хотите предотвратить изменения в модуле высокого уровня при смене модуля низкого уровня, вам необходимо инвертировать элемент управления, чтобы низкоуровневый модуль не контролировал интерфейс и не создавал объекты, которым нужен модуль высокого уровня.
В соответствии с вышеприведенным определением в проекте A должны быть определены как интерфейсы IB, так и IC. Если они находятся в проекте A, то как другие команды будут использовать интерфейсы IB и IC? Я делаю еще один отдельный проект для хранения интерфейсов?
Ваш пользовательский интерфейс выполняет десерилизацию? Это не пользовательский интерфейс ... – Steve
нет У меня есть отдельный проект, чтобы сделать это. Я объяснил это выше. – Debdeep