Sobes.tech
Junior — Middle

Bog'lanishlarni injektsiya qilish konseptini tushuntirib berishingiz mumkinmi va bu nima uchun dasturlashda kerak?

sobes.tech AI

AIdan javob

Bog'lanishlarni injektsiya qilish (Dependency Injection, DI) — bu dizayn shabloni bo'lib, u ob'ektlarga kerakli bo'lgan bog'lanishlarni tashqaridan uzatishga imkon beradi, o'z ichida yaratish o'rniga. Bu modullikni oshiradi, test qilish va kodni qo'llab-quvvatlashni osonlashtiradi.

Masalan, iOS ilovasida sizda ViewController sinfi bor, u NetworkService xizmatiga bog'liq. NetworkServiceni ViewController ichida yaratish o'rniga, uni konstruktor yoki xususiyat orqali uzatasiz:

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

class ViewController {
    let networkService: NetworkService

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

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

// Foydalanish:
let service = NetworkService()
let vc = ViewController(networkService: service)

Bu yondashuv NetworkServiceni testlar davomida osonlik bilan mock ob'ekt bilan almashtirish imkonini beradi va arxitekturaning moslashuvchanligini oshiradi.