Junior — Middle
Czy można wyjaśnić, czym jest wstrzykiwanie zależności i jak jest stosowane w programowaniu?
sobes.tech AI
Odpowiedź od AI
Wstrzykiwanie zależności (Dependency Injection, DI) to wzorzec projektowy, w którym obiekt otrzymuje swoje zależności (np. inne obiekty lub usługi) spoza niego, zamiast tworzyć je samodzielnie. Pomaga to uczynić kod bardziej modułowym, testowalnym i elastycznym.
W programowaniu zwykle realizuje się to przez przekazywanie zależności do konstruktora klasy, przez settery lub interfejsy. Na przykład w Androidzie często używa się bibliotek DI (Dagger, Hilt), które automatycznie tworzą i przekazują potrzebne obiekty.
Przykład w Kotlin:
class Engine {
fun start() = println("Silnik uruchomiony")
}
class Car(private val engine: Engine) {
fun drive() {
engine.start()
println("Samochód jedzie")
}
}
fun main() {
val engine = Engine() // tworzymy zależność
val car = Car(engine) // wstrzykujemy zależność
car.drive()
}
Tutaj Car nie tworzy Engine samodzielnie, lecz otrzymuje go spoza, co ułatwia jego wymianę lub testowanie.