Samenstelling en aggregatie
Klassen en objecten kunnen aan elkaar worden gerelateerd. Overerving beschrijft een "IS A"-relatie. Een leeuw IS EEN dier. Deze relatie wordt eenvoudig uitgedrukt met behulp van overerving, waar
Animalde bovenliggende klasse zou zijn en
Lionhet kind. Maar niet elke relatie in de wereld wordt op deze manier correct beschreven. Een toetsenbord heeft bijvoorbeeld zeker een relatie met een computer, maar
het is geen computer . Handen hebben een relatie met een persoon, maar ze zijn geen persoon. Deze gevallen vertegenwoordigen een ander type relatie - niet "IS A", maar "HAS A". Handen zijn geen persoon, maar een persoon HEEFT handen. Een toetsenbord is geen computer, maar een computer HEEFT een toetsenbord. "HEEFT EEN"
. Het verschil tussen deze concepten ligt in de "strengheid" van de relaties. Laten we een eenvoudig voorbeeld nemen: we hebben een
Car. Elke auto heeft een motor. Bovendien kan elke auto passagiers vervoeren. Wat is het fundamentele verschil tussen de velden
Engine engineen
Passenger[] passengers? Als een passagier
Ain een auto zit, betekent dat niet dat er ook passagiers
Bin
Cde auto kunnen zitten. Eén auto biedt plaats aan meerdere passagiers. Bovendien kunnen alle passagiers uit de auto stappen, maar blijft deze soepel functioneren. De relatie tussen de
Carklasse en de
Passenger[] passengersarray is minder strikt.
Aggregatie heet dat . Hier is een goed artikel over dit onderwerp:
Relaties tussen klassen (objecten). Het is een ander goed voorbeeld van aggregatie. Laten we zeggen dat we een
Studentklas hebben die een student vertegenwoordigt, en een
StudentGroupdie een groep studenten vertegenwoordigt. Een student kan lid zijn van een natuurkundeclub, een Star Wars-studentenfanclub of een comedyclub.
Samenstelling is een strikter type relatie. Bij compositie heeft een object een ander object, maar het kan niet bij een ander object van hetzelfde type horen. Het eenvoudigste voorbeeld is een automotor. Als een auto een motor heeft, dan kan die motor niet bij een andere auto horen. Zoals je kunt zien, is die relatie veel strikter dan die van
Caren
Passengers.
![Relaties tussen klassen. Overerving, samenstelling en aggregatie - 4]()
GO TO FULL VERSION