Можете объяснить, что означает паттерн внедрения зависимостей в программировании?

Паттерн внедрения зависимостей (Dependency Injection, DI) — это способ организации кода, при котором объект получает свои зависимости (например, другие объекты или сервисы) извне, а не создает их самостоятельно.

Короткий ответ

Что ответить на собеседовании

Паттерн внедрения зависимостей (Dependency Injection, DI) — это способ организации кода, при котором объект получает свои зависимости (например, другие объекты или сервисы) извне, а не создает их самостоятельно. Это повышает модульность, облегчает тестирование и упрощает замену компонентов.

Подробный разбор

Ответ с пояснениями

Паттерн внедрения зависимостей (Dependency Injection, DI) — это способ организации кода, при котором объект получает свои зависимости (например, другие объекты или сервисы) извне, а не создает их самостоятельно. Это повышает модульность, облегчает тестирование и упрощает замену компонентов.

Например, вместо того чтобы класс создавал внутри себя объект базы данных, он получает его через конструктор или сеттер:

class UserRepository(private val database: Database) {
    fun getUser(id: String) = database.queryUser(id)
}

// При создании объекта UserRepository мы передаем конкретную реализацию Database
val db = SqlDatabase()
val repo = UserRepository(db)

Такой подход позволяет легко подменять зависимости, например, на мок-объекты при тестировании.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку