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, slik at en fleksibel design der et programs underrutiner kan byttes inn og ut uten vesentlige endringer i det totale programmet.
Tradisjonell versus -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 bestemt ordrenummer, vil sannsynligvis bli kalt på flere ganger i forskjellige deler av programmet, slik at brukeren kan utføreDen veldig generelle søkealgoritmen fra en rekke forskjellige områder av programmet. Gjenbruk av koden forenkler programmeringsprosessen, men skaper kompleksiteter hvis programmereren ønsker å finpusse søkealgoritmen for den ene delen av programmet uten å påvirke de andre seksjonene som koden brukes.
Ved å bruke det samme eksemplet under et inversjon av kontrollscenariet, ville ikke enkeltsøk -subroutine 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. Å bytte en subroutine i ett spesifikt område vil forlate resten av programmet helt upåvirket.
Advantages av IOC
En stor fordel med denne teknikken er at den 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 lags 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 man designer objekter. Mens 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 begynnelseNG -programmerer til å ansette IOC. Fordi hver rutine fungerer uavhengig, blir de alle synlige for omverdenen, som kan bli rynket av noen selskaper.