Назад к вопросам
Junior — Middle
76
Можете объяснить концепцию внедрения зависимостей и зачем она нужна в программировании?
Компании, где спрашивали
GreenData
Ответ от нейросети
sobes.tech AI
Внедрение зависимостей (Dependency Injection, DI) — это паттерн проектирования, при котором объект получает свои зависимости извне, а не создает их самостоятельно. Это помогает сделать код более модульным, тестируемым и гибким.
Например, вместо того чтобы внутри класса создавать экземпляр сервиса, мы передаем этот сервис через конструктор или сеттер. Это облегчает замену реализации сервиса, например, на мок для тестов.
Пример на Swift:
protocol Service {
func doSomething()
}
class RealService: Service {
func doSomething() {
print("Выполняю работу")
}
}
class Consumer {
let service: Service
init(service: Service) {
self.service = service
}
func execute() {
service.doSomething()
}
}
let service = RealService()
let consumer = Consumer(service: service)
consumer.execute()
Таким образом, внедрение зависимостей упрощает поддержку и тестирование кода.