Voordelen en nadelen van objectgeoriënteerd programmeren

Computer code. Diep groen scherm

De meeste moderne pc- en mobiele apps gebruiken OOP-technieken.

Afbeelding tegoed: SoulArt/iStock/Getty Images

Objectgeoriënteerde programmeertalen zoals C++, Java en Visual Basic zijn ontwikkeld door computerwetenschappers om het programmeren te versnellen en de kwaliteit van software te verbeteren. OOP-softwaretechnieken breken programma's op in functionele blokken die objecten worden genoemd, waardoor ze vaak nodig zijn functies zoals bedieningsknoppen, databasebeheer en wiskunde die gemakkelijker te gebruiken en onderling te delen zijn programmeurs. De voordelen gaan echter gepaard met compromissen zoals toegevoegde softwarecomplexiteit en verminderde prestaties.

Betere productiviteit

OOP-technieken dwingen een programmeur regels af die haar op de lange termijn helpen meer werk gedaan te krijgen; voltooide programma's werken beter, hebben meer functies en zijn gemakkelijker te lezen en te onderhouden. Programma's die geen OOP gebruiken, zijn meestal grote, aaneengesloten stukken tekst, zoals hele lange hoofdstukken in een boek. Wanneer programmeurs tussenbeide komen om het te veranderen, wordt de tekst uiteindelijk ongeorganiseerd en moeilijker te volgen. Daarentegen nemen OOP-programmeurs nieuwe en bestaande software-objecten en "naaien" ze aan elkaar om nieuwe programma's te maken. Omdat objectbibliotheken veel handige functies bevatten, hoeven softwareontwikkelaars niet zo vaak het wiel opnieuw uit te vinden; meer van hun tijd gaat naar het maken van het nieuwe programma.

Video van de dag

Lagere programmeerkosten

Vooral voor grotere projecten helpt OOP de kosten van programmeerarbeid te verlagen. Medewerkers die aan een project werken, kunnen hun eigen bibliotheek met softwareobjecten ontwikkelen, waardoor programmeurs elkaars werk gemakkelijk kunnen gebruiken en er minder uren nodig zijn om programma's te ontwikkelen. Met verbeterde softwarekwaliteit besteden ontwikkelaars minder tijd aan het repareren van defecte programma's, waardoor de arbeidskosten verder dalen.

Steilere leercurve

Om OOP onder de knie te krijgen, moet een beginner nieuwe, abstracte concepten leren, zoals: polymorfisme -- objecten hergebruiken terwijl er nieuwe functies aan worden toegevoegd -- en inkapseling -- delen van de interne gegevens van een object verbergen om de beveiliging te verbeteren -- geen van beide ideeën worden gevonden in oudere programmeerstijlen. Deze concepten hebben niet alleen tijd nodig om te leren, ze kunnen ook te complex zijn voor jongere toekomstige programmeurs of voor degenen die slechts af en toe programmeren.

Langzamere software

Objectgeoriënteerde software kan extra huishoudcode bevatten die in andere computertalen niet nodig is; de computer moet de aanvullende programmering uitvoeren, waardoor de reactietijd van een toepassing wordt vertraagd. Voor projecten waarbij snelheid belangrijk is, kunnen programmeurs ervoor kiezen om de meest tijdkritische delen in niet-OOP. te schrijven talen zoals assembler of C, waarbij OOP-code wordt gereserveerd voor vensters of knoppen -- gebieden waarin objecten een duidelijke voordeel.