Gestructureerd programmeren versus objectgericht programmeren
Object Oriented Programming (OOP) en Structured Programming zijn twee programmeerparadigma's. Een programmeerparadigma is een fundamentele stijl van computerprogrammeren. Programmeerparadigma's verschillen in hoe elk element van de programma's wordt weergegeven en hoe stappen worden gedefinieerd voor het oplossen van problemen. Zoals de naam al doet vermoeden, richt OOP zich op het weergeven van problemen met behulp van objecten uit de echte wereld en hun gedrag, terwijl gestructureerd programmeren zich bezighoudt met het organiseren van het programma in een logische structuur.
Wat is gestructureerd programmeren?
Er wordt aangenomen dat het geboortejaar van gestructureerd programmeren 1970 is. Gestructureerd programmeren wordt beschouwd als een subset van imperatief programmeren. Een gestructureerd programma bestaat uit eenvoudige programmastroomstructuren, die hiërarchisch zijn georganiseerd. Het zijn volgorde, selectie en herhaling. Sequentie is een volgorde van uitspraken. Selectie betekent het selecteren van een instructie uit een reeks instructies op basis van de huidige status van het programma (bijvoorbeeld voor het gebruik van if-instructies) en herhaling betekent het uitvoeren van een instructie totdat een bepaalde status is bereikt (voor bijvoorbeeld het gebruik van for- of while-instructies). ALGOL, Pascal, Ada en PL/I zijn enkele van de gestructureerde programmeertalen die tegenwoordig worden gebruikt.
Wat is objectgeoriënteerd programmeren?
In OOP ligt de nadruk op het nadenken over het op te lossen probleem in termen van elementen uit de echte wereld en het weergeven van het probleem in termen van objecten en hun gedrag. Klassen verbeelden de abstracte representaties van objecten uit de echte wereld. Klassen zijn als blauwdrukken of sjablonen, die vergelijkbare items of dingen verzamelen die kunnen worden gegroepeerd. Klassen hebben eigenschappen die attributen worden genoemd. Attributen worden geïmplementeerd als globale en instantievariabelen. Methoden in de klassen vertegenwoordigen of definiëren het gedrag van deze klassen. Methoden en attributen van klassen worden de leden van de klasse genoemd. Een instantie van een klasse wordt een object genoemd. Daarom is een object een gegevensstructuur die sterk lijkt op een object uit de echte wereld.
Er zijn verschillende belangrijke OOP-concepten, zoals gegevensabstractie, inkapseling, polymorfisme, berichten, modulariteit en overerving. Meestal wordt inkapseling bereikt door de attributen privé te maken, terwijl openbare methoden worden gecreëerd die kunnen worden gebruikt om toegang te krijgen tot die attributen. Overerving stelt de gebruiker in staat om klassen (subklassen genoemd) uit te breiden van andere klassen (superklassen genoemd). Met polymorfisme kan de programmeur een object van een klasse vervangen door een object van zijn superklasse. Meestal worden de zelfstandige naamwoorden in de probleemdefinitie direct klassen in het programma. En op dezelfde manier worden werkwoorden methoden. Enkele van de meest populaire OOP-talen zijn Java en C.
Wat is het verschil tussen gestructureerd programmeren en objectgeoriënteerd programmeren?
Het belangrijkste verschil tussen gestructureerd programmeren en OOP is dat de focus van gestructureerd programmeren is om het programma te structureren in een hiërarchie van subprogramma's, terwijl de focus van OOP is om de programmeertaak op te splitsen in objecten, die inkapselen gegevens en methoden. OOP wordt als flexibeler beschouwd dan gestructureerd programmeren, omdat OOP een programma scheidt in een netwerk van subsystemen in plaats van het programma in een hiërarchie te structureren. Hoewel structureren enige duidelijkheid verschaft, kan een kleine wijziging in een zeer groot gestructureerd programma een rimpeleffect veroorzaken van het moeten wijzigen van meerdere subprogramma's.