Встречается на собеседованиях • сегодня
В чем разница между 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 может привести к скрытым связям.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы