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.