Junior — Middle
Můžete vysvětlit koncept inverzní závislosti a jeho roli v návrhu systémů?
sobes.tech AI
Odpověď od AI
Inverze řízení (IoC) je návrhový princip, při kterém je správa závislostí mezi komponentami systému předána externímu kontejneru nebo frameworku, namísto toho, aby byla přímo vytvářena uvnitř komponent.
Role v návrhu systémů:
- Zvyšuje modularitu a testovatelnost, protože komponenty nezávisí na konkrétních implementacích, ale je přijímají zvenčí.
- Umožňuje snadnou výměnu a rozšíření komponent bez změny kódu, který je používá.
Příklad: místo toho, aby třída sama vytvářela objekt závislosti, přijímá ho přes konstruktor nebo setter. To umožňuje snadno měnit implementace, například pro testování.
protocol Service {
func doWork()
}
class RealService: Service {
func doWork() { print("Práce dokončena") }
}
class Client {
let service: Service
init(service: Service) {
self.service = service
}
}
let service = RealService()
let client = Client(service: service)
Zde Client nevytváří sám RealService, ale přijímá ho zvenčí — to je inverze závislosti.