Внедрение зависимостей в .NET | Марк Симан

Версия 9.1 от Alexandr Fokin на 2020/02/12 13:13

DI IOC.jpg

В данной книге рассматриваются концепции DI и IOC. А также приводяться примеры взаимодействия с framework IOC контейнерами.
Приводяться примеры паттернов и антипаттрновэ.
Управление жизненным циклом зависимостей.

Преобразование абстракций в конкретные типы (Процесс разрешения)

DI - процесс внедрения типов при сохдании экземпляров.
Poor man DI - ручное явное внедрение без использования DI(IOC) контейнера.
DI(IOC) контейнер - инструмент позволяющий производить внедрение типов автоматически на основе некоторого, сконфигурированного пользователем, маппиинга (абстракция -> тип)
IOC подразумевает наличие библиотеки или фреймворка, контролирующего часть жизненного цикла приложения и предоставляющий интерфейс для реализации некоторый логики в рамках жизненного цикла разработчику.

Типы внедрений:
Внедрение в конструктор (обязательное)
Внедрение в свойство (необязательное, предполагает возможность наличия значеняи по умолчанию)
Внедрение в метод (внедрение при вызове метода)