Sobes.tech
Junior — Middle

Kas saaksite selgitada vastassuunalise sõltuvuse kontseptsiooni ja selle rolli süsteemide kujundamisel?

sobes.tech AI

Vastus AI-lt

Kontrolli pööramine (IoC) on disainiprintsiip, mille kohaselt süsteemi komponentide vahelised sõltuvused üleantakse välisele konteinerile või raamistikule, mitte ei loo neid otse komponentide sees.

Roll süsteemi disainis:

  • Suurendab modulaarust ja testitavust, kuna komponendid ei sõltu konkreetsetest teostustest, vaid saavad need väljastpoolt.
  • Muudab komponentide vahetamise ja laiendamise lihtsaks ilma koodi muutmata, mis neid kasutab.

Näide: selle asemel, et klass ise loob sõltuvuse objekti, saab ta selle konstruktorite või setterite kaudu. See võimaldab hõlpsasti vahetada teostusi, näiteks testimiseks.

protocol Service {
    func doWork()
}

class RealService: Service {
    func doWork() { print("Töö tehtud") }
}

class Client {
    let service: Service
    init(service: Service) {
        self.service = service
    }
}

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

Siin ei loo klient ise RealService'i, vaid saab selle väljastpoolt — see on sõltuvuste pööramine.