Objectgeoriënteerd programmeren, design patterns (K0882) is niet langer meer een keuzedeel maar een verplicht onderdeel van het leren programmeren binnen mbo ICT.
Objectgeoriënteerd programmeren (OOP) is in de jaren zestig van de vorige eeuw ontwikkeld. De eerste programmeertaal was Simula, ontwikkeld in Noorwegen door het Computing Center in Oslo, gevolgd door Smalltalk, ontwikkeld door Xerox Corporation in Palo Alto Californië. Tegenwoordig zie je OOP in veel programmeertalen terug, zoals Java en C#. Daarnaast bieden scripttalen zoals TypeScript, PHP, Ruby en Python ook mogelijkheden om OOP toe te passen. Een aantal jaren geleden was OOP een specialisatie en de meeste programmeurs leerden alleen procedureel programmeren. Tegenwoordig vraagt het bedrijfsleven meer van programmeurs en zijn de concepten van OOP onmisbare kennis voor de nieuwe generatie programmeurs.
Andere stijl van programmeren
OOP is een totaal andere stijl van programmeren. Het refereert naar programmeren (software design) waarbij programmeurs datastructuren (klassen en objecten) definiëren, gekoppeld met de methodes (operaties) die de datastructuren verwerken. Met klassen en objecten kunnen we ‘real world’ modellen definiëren. Het leert programmeurs om op een meer abstracte en gestructureerde manier programmeervraagstukken op te lossen.
Voordelen
Eén van de meest geciteerde voordelen van OOP tegenover procedureel programmeren is de mogelijkheid om herbruikbare modules (klassen en objecten) te programmeren. Herbruikbare objecten zijn dus de bouwstenen van OOP. Daarnaast is OOP code makkelijker te onderhouden en op te schalen. Dit betekent dat de ontwikkelfase minder vatbaar is voor fouten.
Concepten
Je zou een klasse als een blauwdruk voor een huis kunnen zien. De blauwdruk heeft alle informatie voor het bouwen van een huis, maar is zelf geen huis. Je zou een object als een huis kunnen zien. Het huis is het object dat gemaakt wordt vanuit de blauwdruk (klasse) en we kunnen meerdere huizen vanuit de blauwdruk maken.
Objecten kunnen methodes (operaties) hebben om hun gegevens te verwerken. Een operatie binnen een huis-object zou stofzuigen kunnen zijn. Een operatie binnen een bank-account zou een geldopname-transactie kunnen zijn.
Inkapseling ontstaat wanneer we de gegevens en de methodes in een object als privé definiëren, zodat andere objecten geen rechtstreekse toegang tot de private methodes of gegevens krijgen. In het voorbeeld van een huis-object zou je kunnen zeggen dat het huis private gegevens heeft, bijvoorbeeld een telefoonnummer dat niet openbaar is. Het huisnummer zou wel openbaar zijn en toegankelijk voor andere huis-objecten. Een andere voorbeeld van inkapseling is een bank-account waar de pincode privé is.
We kunnen een subklasse gebaseerd op een klasse maken. Een subklasse is een gespecialiseerde versie van een klasse. Bijvoorbeeld, een herenhuis en een landhuis zijn subklassen van de klasse huis. De subklasse erft veel van de karakteristieken van een klasse. Bijvoorbeeld, een landhuis heeft ook een dak.
Design
We gebruiken de modelleertaal UML (Unified Modeling Language) om ‘real world’ modellen te ontwerpen en om programeervraagstukken op te lossen. Deze modellen kunnen we daarna in Java, TypeScript, C#, Phyton of PHP programmeren.
Objectgeoriënteerd programmeren, design patterns ISBN 978-90-5752-398-4
Geef een reactie