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.