Sobes.tech
Junior — Middle

Puoi spiegare il concetto di dependency injection e perché è necessario nella programmazione?

sobes.tech AI

Risposta dell'AI

L'iniezione delle dipendenze (Dependency Injection, DI) è un pattern di progettazione che consente di passare le dipendenze necessarie agli oggetti dall'esterno, invece di crearle all'interno degli oggetti stessi. Questo aumenta la modularità, facilita i test e la manutenzione del codice.

Ad esempio, in un'app iOS, hai una classe ViewController che dipende dal servizio NetworkService. Invece di creare NetworkService all'interno di ViewController, lo passi tramite il costruttore o una proprietà:

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

class ViewController {
    let networkService: NetworkService

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

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

// Uso:
let service = NetworkService()
let vc = ViewController(networkService: service)

Questo approccio permette di sostituire facilmente NetworkService con un oggetto mock durante i test e migliora la flessibilità dell'architettura.