Sobes.tech
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.