Sobes.tech
Junior — Middle

შესაძლებელია თუ არა ახსნათ, რა არის დამოკიდებულებების შეყვანა და როგორ გამოიყენება ის პროგრამირებაში?

sobes.tech AI

პასუხი AI-სგან

დამოკიდებულებების ინექცია (Dependency Injection, DI) არის დიზაინის ნიმუში, სადაც ობიექტი იღებს თავის დამოკიდებულებებს (მაგალითად, სხვა ობიექტებს ან სერვისებს) გარედან, ნაცვლად იმისა, რომ თავად შექმნას ისინი. ეს ეხმარება კოდის უფრო მოდულურ, ტესტირებადი და მოქნილი გახადაში.

პროგრამირებაში, ეს ჩვეულებრივ ხორციელდება დამოკიდებულებების გადაცემით კლასის კონსტრუქტორში, სეტერების ან ინტერფეისების მეშვეობით. მაგალითად, Android-ში ხშირად გამოიყენება DI ბიბლიოთეკები (Dagger, Hilt), რომლებიც ავტომატურად ქმნიან და გადასცემენ საჭირო ობიექტებს.

Kotlin-ის მაგალითი:

class Engine {
    fun start() = println("მოძრავი დაიწყო")
}

class Car(private val engine: Engine) {
    fun drive() {
        engine.start()
        println("მანქანა მოძრაობს")
    }
}

fun main() {
    val engine = Engine() // დამოკიდებულების შექმნა
    val car = Car(engine) // ინექცია
    car.drive()
}

აქ, Car არ ქმნის Engine-ს თავისით, არამედ იღებს მას გარედან, რაც ამარტივებს Engine-ის შეცვლას ან ტესტირებას.