Dependency Injection включает четыре основные роли, которые работают вместе, чтобы обеспечить слабую связанность и поддерживаемый код:
Service object — это собственно зависимость, которая предоставляет конкретную функциональность. Это компонент, который содержит бизнес-логику, нужную другим частям приложения. Сервисы разработаны так, чтобы их можно было переиспользовать в разных клиентах.
Client object — это компонент, который требует сервис для выполнения своих функций. Вместо того чтобы создавать свои собственные зависимости, клиент получает их из внешнего источника, что снижает сильную связанность и улучшает тестируемость.
Interface устанавливает контракт, который определяет как клиент взаимодействует с сервисом. Благодаря тому, что система зависит от абстракций, а не от конкретных реализаций, она становится более гибкой и позволяет легко заменять разные реализации сервисов.
Injector (также называется container или framework) отвечает за:
Этот компонент берёт на себя всю логику сборки и инстанцирования, отделяя её от бизнес-логики.
Эти роли создают систему, где:
Разделяя эти ответственности, Dependency Injection способствует более чистой архитектуре и упрощает поддержку приложения на протяжении всего его жизненного цикла.
Объект client отвечает за создание экземпляров service объектов и управление их жизненным циклом в паттерне Dependency Injection.
Новый — ещё не проверен сообществом
Вы