Junior — Middle
Czy możesz wyjaśnić koncepcję wstrzykiwania zależności i dlaczego jest ona potrzebna w programowaniu?
sobes.tech AI
Odpowiedź od AI
Wstrzykiwanie zależności (Dependency Injection, DI) to wzorzec projektowy, który umożliwia przekazywanie obiektom niezbędnych zależności z zewnątrz, zamiast tworzenia ich wewnątrz samych obiektów. To zwiększa modułowość, ułatwia testowanie i utrzymanie kodu.
Na przykład, w aplikacji iOS masz klasę ViewController, która zależy od serwisu NetworkService. Zamiast tworzyć NetworkService wewnątrz ViewController, przekazujesz go przez konstruktor lub właściwość:
class NetworkService {
func fetchData() { /* ... */ }
}
class ViewController {
let networkService: NetworkService
init(networkService: NetworkService) {
self.networkService = networkService
}
func loadData() {
networkService.fetchData()
}
}
// Użycie:
let service = NetworkService()
let vc = ViewController(networkService: service)
Takie podejście pozwala łatwo zamienić NetworkService na obiekt mock podczas testów i poprawia elastyczność architektury.