Fordeler og ulemper til objektorientert programmering

Fordeler og ulemper til objektorientert programmering


Objektorientert programmering er et konsept som feide gjennom universitets informatikk avdelinger på 80-tallet og produksjon programvare samfunnet på 90-tallet. Like "modulær programmering" før det og "Internett-programmering" etter det, OOP var gjenstand for en viss debatt. Nå er begrepene modulære programmering universelt akseptert, og mange av begrepene OOP er allment akseptert, selv om noen innvendinger til OOP paradigmet forbli.

Den grunnleggende ideen av OOP

I OOP, dataprogrammer er samspillet av "stedene." Et objekt har "instansvariabler" og "metoder". De instansvariabler postverdier knyttet til objektet. Metoder er funksjoner som innebærer noen aspekter av objektet. I et spill program, kan det være et objekt kalt "romskip", som har objektvariabler som drivstoff beløp. En metode kan være "brann torpedo." Romskip kan tilhøre en "klasse" av objekter kalt "bevegelige objekter." Asteroids også tilhører denne klassen. Kjøre programmet består av objektene sende "meldinger" til hverandre.

Fordelene av OOP

Den første fordelen til objektene konseptet er at all kode som har noe å gjøre med romskip er lokalisert på ett sted. En annen fordel er at gjenstander kan ha iboende egenskaper fra klassen de tilhører; for eksempel kan romskip og asteroider har begge en XY posisjon fordi alle objekter som tilhører den klassen av bevegelige objekter har en XY posisjon. Skrive kode er ofte enklere fordi du kan conceptualize det som noe som skjer til et objekt. En annen fordel er at OOP gjør store programmer mer håndterlig. Hvis alle vinduer tilhører et hierarki av vinduer klasser og hele koden som refererer til et bestemt vindu er med at vinduet objekt, alle vindus manipulasjoner kan skrives som overføring av enkle meldinger.

Ulempene ved OOP

Ikke alle programmer kan modelleres nøyaktig ved formåls modell. Hvis du bare ønsker å lese i noen data, gjøre noe enkelt til det og skrive det ut igjen, har du ikke behov for å definere klasser og objekter. Men i noen OOP språk, må du utføre denne ekstra trinn. En annen ulempe er at hvis du tvinge språket inn i OOP konsept, du mister noen av funksjonene i nyttige språk som de "funksjonelle språk." En annen ulempe er at en programmerer konsept av hva som utgjør et abstrakt objekt ikke kan matche visjonen av en annen programmerer. Objektene ofte kreve omfattende dokumentasjon.

The Future of OOP

Fremtiden for OOP ligger trolig med språk som Ruby og Lua, der objektet konseptet er bygget inn i språket, og er ikke alltid eksplisitt kontrollert av programmereren. Ruby, for eksempel, behandler alt som et objekt, inkludert strenger, tall programmet og innholdet i mappen du er i. Du nesten aldri trenger å erklære noe for å være et objekt. Du står fritt til å bruke språket slik du ønsker: som en OOP, som et funksjonelt språk, som en prosedyrespråk eller på måter som blander opp modaliteter.