Для чего самого важного нужна инъекция зависимостей

«Для чего самого важного нужна инъекция зависимостей» — вопрос из категории DI, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Инъекция зависимостей (DI) нужна для управления зависимостями между компонентами, делая код более гибким, тестируемым и поддерживаемым. Основные преимущества:

  1. Упрощение тестирования – можно легко подменять реальные зависимости моками в тестах.
  2. Снижение связанности – компоненты зависят от абстракций, а не от конкретных реализаций.
  3. Упрощение повторного использования кода.

Пример с Dagger/Hilt:

// Без DI
class MyRepository {
    private val api = ApiService() // Жёсткая зависимость
}

// С DI
class MyRepository @Inject constructor(
    private val api: ApiService // Зависимость инжектируется
)