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.