Sobes.tech
Junior — Middle

Tudja magyarázni a függőséginjektálás fogalmát és miért szükséges a programozásban?

sobes.tech MI

Válasz az MI-től

Függőség injektálás (Dependency Injection, DI) egy tervezési minta, amely lehetővé teszi, hogy a szükséges függőségeket kívülről adjuk át az objektumoknak, ahelyett, hogy azokat belül hoznánk létre. Ez növeli a modularitást, megkönnyíti a tesztelést és a kód karbantartását.

Például egy iOS alkalmazásban van egy ViewController osztály, amely a NetworkService szolgáltatásra támaszkodik. Ahelyett, hogy a NetworkService-t belül hoznánk létre a ViewController-ben, átadjuk konstruktoron vagy tulajdonságon keresztül:

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

class ViewController {
    let networkService: NetworkService

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

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

// Használat:
let service = NetworkService()
let vc = ViewController(networkService: service)

Ez a megközelítés lehetővé teszi, hogy könnyen helyettesítsük a NetworkService-t egy mock objektummal tesztelés közben, és javítja az architektúra rugalmasságát.