Sobes.tech
Junior — Middle

Asılılıqların injeksiyasının nə olduğunu və proqramlaşdırmada necə tətbiq olunduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Asılılıqların İnkişafı (Dependency Injection, DI) — bu dizayn nümunəsidir, burada obyekt öz asılılıqlarını (məsələn, digər obyektlər və ya xidmətlər) xaricdən alır, özündə yaratmır. Bu, kodu daha modul, test edilə bilən və çevik edir.

Proqramlaşdırmada, bu adətən sinifin konstruktoruna, setter-lərə və ya interfeyslərə vasitəsilə asılılıqların ötürülməsi ilə həyata keçirilir. Məsələn, Android-də tez-tez DI kitabxanaları (Dagger, Hilt) istifadə olunur, hansı ki, lazım olan obyektləri avtomatik yaradır və ötürür.

Kotlin nümunəsi:

class Engine {
    fun start() = println("Mühərrik işə düşdü")
}

class Car(private val engine: Engine) {
    fun drive() {
        engine.start()
        println("Maşın hərəkətdə")
    }
}

fun main() {
    val engine = Engine() // asılılığı yaradırıq
    val car = Car(engine) // asılılığı injektsiya edirik
    car.drive()
}

Burada, Car öz-özünə Engine yaratmır, onu xaricdən alır, bu da Engine-in dəyişdirilməsini və ya test edilməsini asanlaşdırır.