Mikä on Inversion of Control
Kontrollin kääntäminen arkkitehtuurissa
Inversion of Control (IoC) on suunnitteluperiaate, jossa ohjelman kulun hallinta siirretään sovelluskoodista ulkoiselle kehykselle tai säiliölle.
Tärkeimmät IoC-mallit
- Dependency Injection (DI) — riippuvuuksien injektointi konstruktorin, setterin tai rajapinnan kautta
- Service Locator — keskitetty palvelurekisteri
- Factory Pattern — objektien luonti tehtaiden kautta
- Template Method — algoritmin rungon määrittely perusluokassa
IoC:n edut
- Löyhä kytkentä komponenttien välillä
- Yksinkertaistettu testaus mockien avulla
- Joustava riippuvuuskonfiguraatio
- Koodin uudelleenkäytettävyys
Suosittuja IoC-säiliöitä
- Spring (Java) — suosituin IoC-säiliö
- ASP.NET Core DI — sisäänrakennettu DI .NET:ssä
- InversifyJS — IoC TypeScript/JavaScriptille
- Autofac, Ninject — vaihtoehdot .NET:lle