Sobes.tech
Junior — Middle

Kun je het concept van dependency injection uitleggen en waarom het nodig is in programmeren?

sobes.tech AI

Antwoord van AI

Dependency Injection (DI) is een ontwerp patroon dat het mogelijk maakt om de benodigde afhankelijkheden aan objecten van buitenaf te geven, in plaats van ze binnenin de objecten te creëren. Dit verhoogt de modulariteit, vergemakkelijkt testen en onderhoud van de code.

Bijvoorbeeld, in een iOS-app heb je een klasse ViewController die afhankelijk is van de service NetworkService. In plaats van NetworkService binnen ViewController te creëren, geef je het door via de constructor of een eigenschap:

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

class ViewController {
    let networkService: NetworkService

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

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

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

Deze aanpak maakt het gemakkelijk om NetworkService te vervangen door een mock-object tijdens tests en verbetert de flexibiliteit van de architectuur.