Sobes.tech
Back to questions
Junior — Middle
80

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

Answer from AI

sobes.tech AI

Паттерн внедрения зависимостей (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)

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