Sobes.tech
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.