Skip to main content

Hva er inversjon av kontroll?

Inversjon av kontroll (IOC) er en programmeringsteknikk der en generell kodestruktur brukes til å styre en rekke unike og spesifikke underrutiner.Dette gjør tradisjonelle programmeringsmetoder, der spesifikk kode styrer en rekke gjenbrukbare og generelle underrutiner, opp ned.Inversjon av kontroll brukes vanligvis i situasjoner der programmereren vet at han eller hun ikke trenger å gjenbruke et bestemt stykke kode mer enn en gang, noe.

Tradisjonell kontra IOC -programmering

I tradisjonell programmering vil hoveddelen av koden gjentatte ganger kreve generelle underrutiner som utfører individuelle funksjoner.For eksempel, i et program som omhandler regnskap, vil en subroutine designet for å tillate sluttbrukeren søke etter et spesifikt ordrenummer, sannsynligvis bli kalt på flere ganger i forskjellige deler av programmet, slik at brukeren kan utføre den veldig generelle søkealgoritmen fra fraEn rekke forskjellige områder av programmet.Gjenbruk av koden forenkler programmeringsprosessen, men skaper kompleksiteter hvis programmereren ønsker å finjustere søkealgoritmen for den ene delen av programmet uten å påvirke de andre seksjonene som koden brukes.

Bruke det samme eksemplet under en inversjon av kontrollscenario, Single Search Subroutine vil ikke bli kalt flere ganger på en rekke områder av programmet.I stedet vil hver del av programmet inneholde sin egen helt selvstendige søkende subroutine.Dette øker tiden som trengs for å begynne å kode programmet, men forenkler eventuelle spesifikke justeringer som kanskje må gjøres senere til individuelle underrutiner i designprosessen.Å endre en subroutine i ett spesifikt område vil forlate resten av programmet helt upåvirket.

Fordeler med IOC

En stor fordel for denne teknikken er at det gjør programdesign langt enklere når du jobber i storstilt team.Ettersom kommunikasjonen mellom teammedlemmer nødvendigvis vil vise seg å være mer og mer vanskelig når antallet arbeidere øker, lar inversjon av kontroll hvert team å programmere sine egne individuelle rutiner, slik at de kan fungere uavhengig av hverandre.Det forenkler også virkningen av feil i systemet, ettersom eventuelle dvelende feil i hvert lag underrutiner bare vil påvirke deres spesifikke deler av programmet.På grunn av dette, når problemer blir oppdaget i en del av systemet, bør resten av programmet forbli fullt funksjonelt.

Ulemper ved IOC

Mens inversjon av kontroll kan forenkle programutformingen, krever det forkunnskaper om hvordan du skal designeobjekter.Selv om hver rutine kan programmeres individuelt, må en IOC -skaper vite hvordan man programmere hvert element i tilfelle endringer må gjøres, så det er ikke alltid like lett for en begynnende programmerer å ansette IOC.Fordi hver rutine fungerer uavhengig, blir de alle synlige for omverdenen, som kan bli rynket av noen selskaper.