Junior — Middle
Môžete vysvetliť koncept invertovania riadenia a jeho úlohu pri vývoji softvérových systémov?
sobes.tech AI
Odpoveď od AI
Inverzia riadenia (Inversion of Control, IoC) je princíp návrhu, pri ktorom sa riadenie toku programu prenáša na externý kontajner alebo rámec, namiesto toho, aby bolo priamo implementované v kóde aplikácie.
Namiesto toho, aby objekt sám vytváral a spravoval svoje závislosti, tieto závislosti sú injektované zvonku (napríklad cez konštruktor alebo setter). To zvyšuje modularitu, uľahčuje testovanie a údržbu kódu.
V Jave sa to často realizuje pomocou Dependency Injection, kde kontajner (napríklad Spring) vytvára objekty a riadi ich životný cyklus.
Príklad injektovania závislosti:
public class Service {
private Repository repository;
// Injektovanie závislosti cez konštruktor
public Service(Repository repository) {
this.repository = repository;
}
public void doWork() {
repository.save();
}
}
Tu Service nevytvára Repository sám, ale ho dostáva zvonku, čo zodpovedá princípu IoC.