Встречается на собеседованиях • сегодня

В чем разница между Dependency Injection и Service Locator

Dependency Injection (DI) и Service Locator (SL) — это паттерны управления зависимостями, но с разными подходами. **DI** внедряет зависимости извне (через конструктор, свойства или методы), делая их явными. Это упрощает тестирование и соблюдение принципа инверсии зависимостей (DIP). ```typescript class UserService { constructor(private db: Database) {} // DI через конструктор } ``` **Service Locator** предоставляет централизованный контейнер, из которого зависимости запрашиваются внутри класса. Это скрывает зависимости, усложняя понимание кода и тестирование. ```typescript class UserService { private db = ServiceLocator.get('db'); // SL } ``` **Ключевые отличия**: - DI прозрачен (зависимости видны), SL скрывает их. - DI упрощает мокирование для тестов, SL требует настройки контейнера. - DI следует принципу явных зависимостей, SL может привести к скрытым связям.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы