Fordeler og ulemper med objektorientert programmering

Datamaskinkode. Dyp grønn skjerm

De fleste moderne PC- og mobilapper bruker OOP-teknikker.

Bildekreditt: SoulArt/iStock/Getty Images

Objektorienterte programmeringsspråk som C++, Java og Visual Basic ble utviklet av dataforskere for å øke hastigheten på programmering og forbedre kvaliteten på programvaren. OOP-programvareteknikker bryter programmer inn i funksjonelle blokker kalt objekter, noe som ofte er nødvendig funksjoner som kontrollknapper, databaseadministrasjon og matematikk enklere å bruke og dele mellom programmerere. Fordelene kommer imidlertid med avveininger som ekstra programvarekompleksitet og redusert ytelse.

Bedre produktivitet

OOP-teknikker håndhever regler for en programmerer som i det lange løp hjelper henne med å få gjort mer arbeid; ferdige programmer fungerer bedre, har flere funksjoner og er lettere å lese og vedlikeholde. Programmer som ikke bruker OOP har en tendens til å være store, sammenhengende tekstplater som veldig lange kapitler i en bok. Når programmerere går inn for å endre den, blir teksten til slutt uorganisert og vanskeligere å følge. Derimot tar OOP-programmerere nye og eksisterende programvareobjekter og "sy" dem sammen for å lage nye programmer. Fordi objektbiblioteker inneholder mange nyttige funksjoner, trenger ikke programvareutviklere å finne opp hjulet på nytt så ofte; mer av tiden deres går med til å lage det nye programmet.

Dagens video

Lavere programmeringskostnader

Spesielt for større prosjekter hjelper OOP med å redusere kostnadene for programmeringsarbeid. Personalet som jobber med et prosjekt kan utvikle sitt eget bibliotek med programvareobjekter, slik at programmerere enkelt kan bruke hverandres arbeid og redusere timene som trengs for å utvikle programmer. Med forbedret programvarekvalitet bruker utviklere mindre tid på å fikse programmer som ikke fungerer, noe som reduserer arbeidskostnadene ytterligere.

Brattere læringskurve

For å mestre OOP må en nybegynner lære nye, abstrakte konsepter som f.eks polymorfisme -- gjenbruke objekter mens du legger til nye funksjoner til dem -- og innkapsling -- skjule deler av et objekts interne data for å forbedre sikkerheten -- ingen av disse ideene finnes i eldre programmeringsstiler. Ikke bare tar disse konseptene tid å lære, de kan være for komplekse for yngre programmerere eller de som bare programmerer av og til.

Tregere programvare

Objektorientert programvare kan innebære ekstra rengjøringskode som ikke er nødvendig på andre dataspråk; datamaskinen må utføre tilleggsprogrammeringen, noe som reduserer responstiden til en applikasjon. For prosjekter der hastighet er viktig, kan programmerere velge å skrive de mest tidskritiske delene i ikke-OOP språk som assembler eller C, reserverer OOP-kode for vinduer eller knapper -- områder der objekter har en klar fordel.