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.