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

Версия 9.2 от Alexandr Fokin на 2024/01/04 19:22

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

 DI IOC.jpg

  • DI - процесс внедрения типов при создании экземпляров.
  • Poor man DI - ручное явное внедрение без использования DI(IOC) контейнера.
  • DI(IOC) контейнер - инструмент позволяющий производить внедрение типов автоматически на основе некоторого, сконфигурированного пользователем, маппинга (абстракция -> тип)
  • IOC подразумевает наличие библиотеки или фреймворка, контролирующего часть жизненного цикла приложения и предоставляющий интерфейс для реализации некоторый логики в рамках жизненного цикла разработчику.
Типы внедрений:
  • Внедрение в конструктор (обязательное)
  • Внедрение в свойство (необязательное, предполагает возможность наличия значения по умолчанию)
  • Внедрение в метод (внедрение при вызове метода)
  • Фабрика
  
 Failed to execute the [html] macro. Cause: [When using the HTML macro inline, you can only use inline HTML content. Block HTML content (such as tables) cannot be displayed. Try leaving an empty line before and after the HTML macro.]. Click on this message for details.