Ответ
Инъекция зависимостей (DI) нужна для управления зависимостями между компонентами, делая код более гибким, тестируемым и поддерживаемым. Основные преимущества:
- Упрощение тестирования – можно легко подменять реальные зависимости моками в тестах.
- Снижение связанности – компоненты зависят от абстракций, а не от конкретных реализаций.
- Упрощение повторного использования кода.
Пример с Dagger/Hilt:
// Без DI
class MyRepository {
private val api = ApiService() // Жёсткая зависимость
}
// С DI
class MyRepository @Inject constructor(
private val api: ApiService // Зависимость инжектируется
)