Sobes.tech
Junior — Middle
89

Имел ли ты опыт использования Dependency Injection в своих проектах?

Компании, где спрашивали
Мидлэнд
DNSDNS

Ответ от нейросети

sobes.tech AI

Да, в проектах на iOS я использовал Dependency Injection (DI) для повышения модульности и тестируемости кода. DI позволяет передавать зависимости (например, сервисы, менеджеры) в объекты извне, а не создавать их внутри.

Пример простого DI в Swift:

protocol NetworkService {
    func fetchData()
}

class RealNetworkService: NetworkService {
    func fetchData() {
        // Реализация
    }
}

class ViewModel {
    private let networkService: NetworkService

    init(networkService: NetworkService) {
        self.networkService = networkService
    }

    func loadData() {
        networkService.fetchData()
    }
}

// Использование
let service = RealNetworkService()
let viewModel = ViewModel(networkService: service)

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