Sobes.tech
Junior — Middle

Bog'lanishlarni injektsiya qilish nima va u dasturlashda qanday qo'llaniladi deb tushuntirish mumkinmi?

sobes.tech AI

AIdan javob

Dependency Injection (DI) — bu dizayn naqshidir, bunda ob'ekt o'zining bog'lamlarini (masalan, boshqa ob'ektlar yoki xizmatlar) tashqaridan oladi, o'z ichida yaratmaydi. Bu kodni ko'proq modulli, test qilish oson va moslashuvchan qiladi.

Dasturlashda, odatda, bu konstruktor orqali, setterlar yoki interfeyslar yordamida amalga oshiriladi. Masalan, Androidda, odatda, DI kutubxonalari (Dagger, Hilt) kerakli ob'ektlarni avtomatik ravishda yaratib, uzatadi.

Kotlin misoli:

class Engine {
    fun start() = println("Motor ishga tushdi")
}

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

fun main() {
    val engine = Engine() // bog'lamni yaratamiz
    val car = Car(engine) // bog'lamni in'ektsiya qilamiz
    car.drive()
}

Bu yerda, Car o'zi Engineni yaratmaydi, balki tashqaridan oladi, bu esa Engineni o'zgartirish yoki test qilishni osonlashtiradi.