Vad är inversion av kontrollen?

Inversion av kontroll (IOC) är en programmeringsteknik där en allmän kodstruktur används för att styra ett antal unika och specifika subroutiner. Detta förvandlar traditionella programmeringsmetoder, där specifik kod styr ett antal återanvändbara och allmänna subroutiner, upp och ner. Inversion av kontroll används vanligtvis i situationer där programmeraren vet att han eller hon inte kommer att behöva återanvända en specifik kodstycke mer än en gång, vilket tillåter en flexibel design där ett programs underutiner kan bytas in och ut utan väsentliga förändringar av det övergripande programmet.

traditionell kontra IOC -program

Vid traditionell programmering kommer kodens huvuddel upprepade gånger att kräva allmänna subroutiner som utför enskilda funktioner. Till exempel, i ett program som handlar om redovisning, kommer en subroutine utformad för att låta slutanvändaren söka efter ett specifikt beställningsnummer att kallas flera gånger i olika avsnitt av programmet, vilket gör att användaren kan utföraDen mycket allmänna sökalgoritmen från ett antal olika områden i programmet. Återanvändning av koden förenklar programmeringsprocessen, men skapar komplexitet om programmeraren vill finjustera den sökande algoritmen för en del av programmet utan att påverka de andra avsnitten där koden används.

Med samma exempel under en inversion av kontrollscenario skulle den enda sökkroutinen inte kallas flera gånger över ett antal områden i programmet. Istället skulle varje avsnitt i programmet innehålla sin egen helt fristående sökande subroutine. Detta ökar den tid som krävs för att initialt koda programmet, men förenklar alla specifika tweaks som kan behöva göras senare till enskilda subrutiner i designprocessen. Att byta en subroutin i ett specifikt område kommer att lämna resten av programmet helt opåverkat.

Advantages of ioc

En viktig fördel med denna teknik är att den gör programdesign mycket enklare när man arbetar i storskaliga team. Eftersom kommunikationen mellan teammedlemmarna nödvändigtvis kommer att visa sig vara mer och svårare när antalet arbetare ökar, gör det möjligt för inversion av kontroll att varje team kan programmera sina egna individuella rutiner, vilket gör att de kan fungera oberoende av varandra. Det förenklar också effekterna av buggar i systemet, eftersom alla kvarvarande fel i varje lags subroutiner endast kommer att påverka deras specifika avsnitt av programmet. På grund av detta, när problem upptäcks i en del av systemet, bör resten av programmet förbli fullt funktionellt.

nackdelar med ioc

Medan inversion av kontroll kan förenkla programdesign kräver det förkunskaper om hur man utformar objekt. Medan varje rutin kan programmeras individuellt, måste en IOC -skapare veta hur man programmerar varje objekt om ändringar måste göras, så det är inte alltid lätt för en börjanng programmerare för att anställa IOC. Eftersom varje rutin fungerar oberoende syns alla synliga för omvärlden, som kan rynkas på av vissa företag.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?