Sobes.tech
Junior — Middle

Pode explicar o conceito de injeção de dependências e por que ela é necessária na programação?

sobes.tech IA

Resposta da IA

Injeção de dependências (Dependency Injection, DI) é um padrão de projeto que permite passar as dependências necessárias aos objetos de fora, em vez de as criarem dentro dos próprios objetos. Isto aumenta a modularidade, facilita os testes e a manutenção do código.

Por exemplo, numa aplicação iOS, tem uma classe ViewController que depende do serviço NetworkService. Em vez de criar o NetworkService dentro do ViewController, você passa-o através do construtor ou de uma propriedade:

class NetworkService {
    func fetchData() { /* ... */ }
}

class ViewController {
    let networkService: NetworkService

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

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

// Uso:
let service = NetworkService()
let vc = ViewController(networkService: service)

Este método permite substituir facilmente o NetworkService por um objeto simulado durante os testes e melhora a flexibilidade da arquitetura.