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.