Hopp til innhold

Objektorientert programmering

Fra Wikipedia, den frie encyklopedi
Sideversjon per 7. aug. 2018 kl. 12:27 av 4ingBot (diskusjon | bidrag) (standard overskrifter using AWB)

Objektorientert programmering (OOP) er et paradigme for programmering av datamaskiner.

Konseptet stammer fra arbeidet nordmennene Kristen Nygaard og Ole-Johan Dahl gjorde ved Norsk Regnesentral med programmeringsspråket Simula1960-tallet, noe de ble belønnet med både Turing-prisen[1][2] og John von Neumann-medaljen for. OOP-konseptet fikk stor utbredelse gjennom bruk i andre programmeringsspråk, på 1970-tallet Smalltalk, på 1980-tallet C++ og på 1990-tallet Java.

Følgende prinsipper er sentrale i OOP:

  • Objekter – pakke data og funksjonalitet sammen i enheter i programmet. Dette er basis for modularitet, en av kvalitetene man prøver å oppnå.
  • Abstraksjon – gjøre at programmereren underveis kan ignorere noen av detaljene ved implementasjon av det som jobbes med.
  • Innkapsling – skjule den interne tilstanden til et objekt fra andre. Dette gjør at utenforstående kode ikke kan endre på tilstanden til objektet på uforutsette måter.
  • Polymorfi – gjøre at et objekt kan oppføre seg som et annet, bare den oppfyller den «kontrakten» grensesnittet spesifiserer.
  • Arv – lette arbeidet med innkapsling og polymorfi ved å tillate programmereren å lage objekter som er mer spesialiserte utgaver av andre objekter.

De fleste av de mest brukte programmeringsspråkene i dag benytter seg av en objektorientert programmeringsmodell.

Fordeler og ulemper

Objektorientert programmering har vært det rådende paradigmet siden 1990-tallet, og har både tilhengere og motstandere. Tilhengerne peker ofte på at objekter og hierarkier både passer den virkelig verden godt og er en naturlig måte å tenke på for mennesker. De trekker også fram at de fleste utviklere i dag er kjent med paradigmet, og kan jobbe med kode som er skrevet slik uten ekstra opplæring. Motstanderne peker ofte på virkelige problemstillinger som passer dårlig i en objektmodell samt problemet med å bruke objektorientering i samband med relasjonsdatabaser.

Se også

Referanser

  1. ^ «ACM Turing Awards: 2001 – Ole-Johan Dahl» (på engelsk). Besøkt 22. oktober 2011. [død lenke]
  2. ^ «ACM Turing Awards: 2001 – Kristen Nygaard» (på engelsk). Besøkt 22. oktober 2011. [død lenke]

Eksterne lenker