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)
Такой подход позволяет легко подменять зависимости, например, на мок-объекты при тестировании.