Inleiding •
Verhinderen van redundantie. Specificaties die voor meerdere klassen gelden, hoeven slechts op één plaats gespecificeerd te worden.
Overerving heeft ook een beperking. Als we nadenken over dingen, dan zullen we heel dikwijls beginnnen met het specifieke te zien, en dan gaan we dat in gedachten veralgemenen. Onze gedachten gaan dus van specifiek naar algemeen. Maar bij programmeren is de werkwijze andersom het gemakkelijkst: van algemeen naar specifiek. Het is gemakkelijk om een specialisatieklasse te maken van een bestaande klasse, maar het is lastig om een generalisatie te maken van een bestaande klasse. Voor je begint te programmeren moet je je dus eerst afvragen waar er mogelijk generalisatieconcepten nodig zijn, en dat is niet altijd gemakkelijk.
8. OOA en OOP We kunnen objectgeoriënteerd analyseren (OOA), en ook objectgeoriënteerd programmeren (OOP). In het eerste geval proberen we een model van een stuk van de wereld te maken met objecten en klassen. In het tweede geval schrijven we een programma dat is opgebouwd uit objecten en klassen. Objectgeoriënteerde programmeertalen bestaan al langer dan objectgeoriënteerde analyse- en ontwerpmethoden. De meeste objectgeoriënteerde programmeertalen ontstonden in de jaren zeventig en tachtig van de twintigste eeuw. Op het einde van de jaren tachtig zijn die talen echt doorgebroken, en ook nu nog is objectgeoriënteerd programmeren de meest gebruikte vorm van programmeren. Objectgeoriënteerde analyse- en ontwerpmethoden kwamen pas later, halverwege de jaren negentig. Jarenlang heeft men objectgeoriënteerd geprogrammeerd zonder een objectgeoriënteerde ontwerpmethode te gebruiken. Dat bleek niet zo efficiënt te zijn. Objectgeoriënteerd programmeren combineren met objectgeoriënteerde analyse en ontwerp gaf betere resultaten. Meer nog: het bleek dat objectgeoriënteerde analyse en ontwerp ook combineerbaar zijn met klassiek procedureel programmeren (bijvoorbeeld in COBOL of RPG).
- 30 -