Back to questions
Junior — Middle
71
Объясните концепцию внедрения зависимостей и как оно применяется в программировании?
Companies where asked
Waveaccess
Answer from AI
sobes.tech AI
Внедрение зависимостей (Dependency Injection, DI) — это паттерн проектирования, при котором объект получает свои зависимости извне, а не создает их самостоятельно. Это повышает модульность, упрощает тестирование и улучшает поддержку кода.
В iOS-программировании DI часто реализуется через передачу зависимостей в конструктор класса или через свойства. Например, если у вас есть класс ViewController, который зависит от сервиса NetworkService, вы можете передать этот сервис в инициализатор:
class NetworkService {
func fetchData() { /* ... */ }
}
class ViewController {
let networkService: NetworkService
init(networkService: NetworkService) {
self.networkService = networkService
}
func loadData() {
networkService.fetchData()
}
}
// Использование:
let service = NetworkService()
let vc = ViewController(networkService: service)
Такой подход позволяет легко заменить NetworkService на мок-объект при тестировании, а также улучшает читаемость и поддержку кода.