Hva er Inversion of Control
Kontrollinversjon i arkitektur
Inversion of Control (IoC) er et designprinsipp der kontrollen over programflyten overføres fra applikasjonskoden til et eksternt rammeverk eller container.
Hovedmønstre for IoC
- Dependency Injection (DI) — injisere avhengigheter gjennom konstruktør, setter eller grensesnitt
- Service Locator — sentralisert tjenesteregistrering
- Factory Pattern — opprette objekter gjennom fabrikker
- Template Method — definere algoritmeskjelett i basisklassen
Fordeler med IoC
- Løs kobling mellom komponenter
- Forenklet testing gjennom mocks
- Fleksibel avhengighetskonfigurasjon
- Gjenbrukbarhet av kode
Populære IoC-containere
- Spring (Java) — den mest populære IoC-containeren
- ASP.NET Core DI — innebygd DI i .NET
- InversifyJS — IoC for TypeScript/JavaScript
- Autofac, Ninject — alternativer for .NET