Mis on Inversion of Control
Juhtimise ümberpööramine arhitektuuris
Inversion of Control (IoC) on disainipõhimõte, kus programmi voo juhtimine antakse üle rakenduse koodist välisele raamistikule või konteinerile.
Peamised IoC mustrid
- Dependency Injection (DI) — sõltuvuste sisestamine konstruktori, setteri või liidese kaudu
- Service Locator — tsentraliseeritud teenuste register
- Factory Pattern — objektide loomine tehaste kaudu
- Template Method — algoritmi skeleti määratlemine baasklassis
IoC eelised
- Nõrk sidusus komponentide vahel
- Lihtsustatud testimine mockide abil
- Paindlik sõltuvuste seadistamine
- Koodi taaskasutatavus
Populaarsed IoC konteinerid
- Spring (Java) — populaarseim IoC konteiner
- ASP.NET Core DI — sisseehitatud DI .NET-is
- InversifyJS — IoC TypeScript/JavaScripti jaoks
- Autofac, Ninject — alternatiivid .NET-ile