Skip to main content

Hvad er inversion af kontrol?

Inversion of Control (IOC) er en programmeringsteknik, hvor en generel kodestruktur bruges til at styre et antal unikke og specifikke underprogrammer.Dette drejer traditionelle programmeringsmetoder, hvor specifik kode styrer en række genanvendelige og generelle underprogrammer, på hovedet.Inversion af kontrol bruges typisk i situationer, hvor programmereren ved, at han eller hun ikke behøver at genbruge et specifikt stykke kode mere end én.

Traditionel versus IOC -programmering

I traditionel programmering vil kodens hovedkrop gentagne gange kræve generelle underprogrammer, der udfører individuelle funktioner.For eksempel, i et program, der beskæftiger sig med regnskab, vil en subroutine, der er designet til at give slutbrugeren mulighed for at søge efter et specifikt ordrenummer, sandsynligvis blive kaldt flere gange i forskellige sektioner i programmet, så brugeren kan udføre den meget generelle søgealgoritme fraEn række forskellige områder af programmet.At genbruge koden forenkler programmeringsprocessen, men skaber kompleksiteter, hvis programmereren ønsker at finjustere søgealgoritmen til et afsnit af programmet uden at påvirke de andre sektioner, hvor koden bruges.

Ved hjælp af det samme eksempel under en inversion af kontrolscenariet, den enkelte søgningssubroutine kaldes ikke flere gange på tværs af en række områder af programmet.I stedet ville hvert afsnit af programmet indeholde sin egen helt selvstændige søgning på subroutine.Dette øger den tid, der er nødvendig for oprindeligt at kode programmet, men forenkler alle specifikke justeringer, der muligvis skal foretages senere til individuelle underprogrammer i designprocessen.Ændring af en subroutine i et specifikt område vil forlade resten af programmet fuldstændigt upåvirket.

Fordele ved IOC

En stor fordel ved denne teknik er, at det gør programdesign langt lettere, når man arbejder i store teams.Da kommunikationen mellem teammedlemmer nødvendigvis vil vise sig mere og mere vanskelig, når antallet af arbejdstagere øges, giver inversion af kontrol hvert team mulighed for at programmere sine egne individuelle rutiner, hvilket giver dem mulighed for at fungere uafhængigt af hinanden.Det forenkler også virkningen af bugs i systemet, da eventuelle dvælende fejl i hvert hold underprogrammer kun vil påvirke deres specifikke sektioner af programmet.På grund af dette, når der opdages problemer i en del af systemet, skal resten af programmet forblive fuldt funktionelt.genstande.Mens hver rutine kan programmeres individuelt, skal en IOC -skaber vide, hvordan man programmerer hvert emne, hvis der skal foretages ændringer, så det er ikke altid let for en begyndelsesprogrammør at anvende IOC.Fordi hver rutine fungerer uafhængigt, er de alle synlige for omverdenen, som kan blive rynket af nogle virksomheder.