Sobes.tech
Back to questions
Junior — Middle
77

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

Companies where asked
GreenData

Answer from AI

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()

Таким образом, внедрение зависимостей упрощает поддержку и тестирование кода.