Sobes.tech
Junior — Middle

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

sobes.tech AI

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

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

მაგალითად, iOS აპლიკაციაში, თქვენ გაქვთ კლასი ViewController, რომელიც დამოკიდებულია სერვისზე NetworkService. ნაცვლად იმისა, რომ NetworkService შექმნათ ViewController-ის შიგნით, გადაეცით იგი კონსტრუქტორით ან თვისებით:

class NetworkService {
    func fetchData() { /* ... */ }
}

class ViewController {
    let networkService: NetworkService

    init(networkService: NetworkService) {
        self.networkService = networkService
    }

    func loadData() {
        networkService.fetchData()
    }
}

// გამოყენება:
let service = NetworkService()
let vc = ViewController(networkService: service)

ეს მიდგომა საშუალებას აძლევს მარტივად შეცვალოთ NetworkService მოკ ობიექტით ტესტირების დროს და აუმჯობესებს არქიტექტურის მოქნილობას.