Sobes.tech
Junior — Middle

Môžete vysvetliť koncept injektáže závislostí a prečo je potrebný v programovaní?

sobes.tech AI

Odpoveď od AI

Vstrekovanie závislostí (Dependency Injection, DI) je návrhový vzor, ktorý umožňuje odovzdávať objektom potrebné závislosti zvonku, namiesto ich vytvárania vo vnútri samotných objektov. To zvyšuje modularitu, uľahčuje testovanie a údržbu kódu.

Napríklad v iOS aplikácii máte triedu ViewController, ktorá závisí od služby NetworkService. Namiesto toho, aby ste NetworkService vytvárali vo vnútri ViewController, ho odovzdáte cez konštruktor alebo vlastnosť:

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

class ViewController {
    let networkService: NetworkService

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

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

// Použitie:
let service = NetworkService()
let vc = ViewController(networkService: service)

Tento prístup umožňuje ľahko nahradiť NetworkService za mock objekt počas testovania a zlepšuje flexibilitu architektúry.