Sobes.tech
Junior — Middle

Байланыштардын тескерисинче иштөө принциби менен байланышты иштетүүнүн айырмачылыктарын түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Тескери көзкараштык принциби (Dependency Inversion Principle, DIP) — бул SOLID принциптеринин бири жана мындай дейт:

  • Жогорку деңгээлдеги модулдар төмөнкү деңгээлдеги модулдарга көзкараштык кылбашы керек. Экиси да абстракциялардан көзкараштык кылышы керек.
  • Абстракциялар деталдардан көзкараштык кылбашы керек. Деталдар абстракциялардан көзкараштык кылышы керек.

Бул дизайн принциби коддун байланышын азайтууга жана ийкемдүүлүгүн арттырууга багытталган.

Тескери көзкараштык киргизүү (Dependency Injection, DI) — бул принципти практикалык жүзөгө ашыруучу үлгү же техника. DI дегенибиз — көзкараштык кылуучу объекттер (класс үчүн керек болгон объекттер) сырттан өткөрүлүп берилет, класс ичинде түзүлбөйт.

Мисал:

protocol Service {
    func doSomething()
}

class RealService: Service {
    func doSomething() { print("Кызматтын иши") }
}

class Client {
    let service: Service

    // Көзкараштык киргизүү конструктор аркылуу
    init(service: Service) {
        self.service = service
    }

    func execute() {
        service.doSomething()
    }
}

let service = RealService()
let client = Client(service: service)
client.execute()

Бул жерде DIP — бул идея, Client RealService конкреттүү ишке ашуусуна эмес, Service абстракциясына көзкараштык кылат. DI — бул конкреттүү ишке ашуусун сырттан Clientке өткөрүү жолу.

Жыйынтык:

  • DIP — дизайн принциби.
  • DI — бул принципти ишке ашыруу ыкмасы.