Sobes.tech
Junior — Middle

Може ли да се објасни шта је убризгавање зависности и како се примењује у програмирању?

sobes.tech АИ

Одговор од АИ

Umetanje zavisnosti (Dependency Injection, DI) je obrazac dizajna u kojem objekat prima svoje zavisnosti (na primer, druge objekte ili servise) spolja, umesto da ih sam kreira. Ovo pomaže da se kod učini modularnijim, lakšim za testiranje i fleksibilnijim.

U programiranju se ovo obično realizuje putem prosleđivanja zavisnosti u konstruktor klase, putem settera ili putem interfejsa. Na primer, u Androidu često koriste DI biblioteke (Dagger, Hilt) koje automatski kreiraju i prosleđuju potrebne objekte.

Primer u Kotlinu:

class Engine {
    fun start() = println("Motor je pokrenut")
}

class Car(private val engine: Engine) {
    fun drive() {
        engine.start()
        println("Auto vozi")
    }
}

fun main() {
    val engine = Engine() // kreiranje zavisnosti
    val car = Car(engine) // injektovanje zavisnosti
    car.drive()
}

Ovde, Car ne kreira Engine samostalno, već ga dobija spolja, što olakšava zamenu ili testiranje Engine-a.