Verschil tussen aggregatie en samenstelling in UML
Belangrijkste verschil tussen aggregatie en samenstelling
- Aggregatie is een type associatie tussen twee objecten dat de ‘hebben-een’-relatie beschrijft, terwijl Compositie een specifiek type aggregatie is dat eigendom impliceert.
- Aggregatie wordt aangegeven met een rechte lijn met aan één uiteinde een lege pijlpunt. Aan de andere kant wordt de compositie aangegeven met een rechte lijn met een gevulde pijlpunt aan een van de uiteinden.
- In een aggregatierelatie kunnen objecten die aan elkaar zijn gekoppeld, zonder elkaar binnen de reikwijdte van een systeem blijven. Maar in een compositierelatie kunnen objecten die met elkaar geassocieerd zijn niet zonder elkaar in de reikwijdte blijven.
- Bij aggregatie zijn gekoppelde objecten niet afhankelijk van het andere object, terwijl objecten bij compositie sterk van elkaar afhankelijk zijn.
- Bij aggregatie heeft het verwijderen van één element geen invloed op een ander gekoppeld element. Integendeel, bij de compositie heeft het verwijderen van een enkel element invloed op een ander bijbehorend element.
- Aggregatie wordt aangegeven met een gevulde diamant, terwijl een lege diamant de samenstelling aangeeft.
Wat is aggregatie?
Aggregatie is een speciaal geval van associatie wanneer een object een ander object 'heeft', waartussen u een aggregatie kunt hebben. De richting ertussen helpt u te specificeren welk object het andere object bevat. Aggregatie wordt ook wel een ‘Has-a’-relatie genoemd. Het is een subtype van een associatierelatie in UML.
Wat is compositie?
De compositie is een speciaal geval van aggregatie waarmee u een geheel-deelrelatie kunt specificeren tussen de compositieklasse en een ondergeschikte (deel)klasse.
Verschil tussen aggregatie en samenstelling in UML
Dit is het belangrijkste verschil tussen aggregatie en samenstelling:
Aggregatie | Samenstelling: |
---|---|
Aggregatie is een type associatie tussen twee objecten dat ook de 'hebben'-relatie beschrijft. | Samenstelling is een specifiek type aggregatie dat eigendom impliceert. |
Aggregatie wordt aangegeven met een rechte lijn met aan één uiteinde een lege pijlpunt. | De compositie wordt aangegeven met een rechte lijn met een gevulde pijlpunt aan een van de uiteinden. |
Aggregatie is een onderdeel van een associatierelatie. | De compositie is onderdeel van een associatierelatie. |
Aggregatie wordt beschouwd als een zwak type associatie. | De compositie wordt beschouwd als een sterk type vereniging. |
In een aggregatierelatie kunnen objecten die aan elkaar zijn gekoppeld, zonder elkaar binnen de reikwijdte van een systeem blijven. | In een compositierelatie kunnen objecten die met elkaar geassocieerd zijn, niet zonder elkaar in de scope blijven. |
Bij aggregatie zijn gekoppelde objecten niet afhankelijk van het andere object. | Objecten zijn qua compositie sterk van elkaar afhankelijk. |
Bij aggregatie heeft het verwijderen van één element geen invloed op een ander gekoppeld element. | Bij de compositie heeft het verwijderen van een enkel element invloed op een ander gekoppeld element. |
Voorbeeld: Een auto heeft een wiel nodig, maar niet altijd hetzelfde wiel. Ook met een ander wiel kan een auto goed functioneren. | Voorbeeld: Er wordt een bestand in de map geplaatst. Als iemand de map verwijdert, wordt het bestand dat aan die bepaalde map is gekoppeld ook verwijderd. |
In aggregatie, ouder relatie met de onderliggende entiteit. |
In samenstelling is de moederentiteit eigenaar van de onderliggende entiteit. |
Het wordt aangegeven met een gevulde diamant | Het wordt aangegeven met een lege diamant |
Kind heeft geen levenslang. | Kind kan een leven lang hebben. |
Dit wordt weergegeven door een holle ruit naast de assembly-klasse. | Dit wordt weergegeven door een massieve ruit naast de assembly-klasse. |
Het verwijderen van een assembly heeft nooit invloed op de onderdelen ervan. | Als u eigenaar bent van een klasse, wordt het object verwijderd. Het heeft ook invloed op het bevattende klasseobject. |
Aggregatie versus samenstelling: belangrijkste statistieken
Aggregatie | Samenstelling: | |
---|---|---|
Eigenaar | Geen eigenaar | Enkele eigenaar |
Levensduur | Hebben hun leven lang. | Levensduur van de eigenaar. |
Onderliggend object | Onderliggende objecten zijn allemaal onafhankelijk. | Onderliggende objecten behoren tot één ouder. |
Voorbeeld van compositie
De map kan veel bestanden bevatten, terwijl elk bestand precies één bovenliggende map heeft. Als een map wordt verwijderd, worden alle daarin opgenomen bestanden ook verwijderd. In een samengestelde aggregatie kan een object slechts deel uitmaken van één samengesteld geheel tegelijk.
Voorbeeld van aggregatie
Uw auto bestaat bijvoorbeeld uit wielen, motor, versnellingsbak, besturing, carrosserie, etc. Het is een geheel en de andere onderdelen vormen de bestanddelen.
Hier is de auto aan het wiel één aggregatie, de auto aan de motor is een andere aggregatie, de auto aan de versnellingsbak weer een andere, enzovoort.
Dit type pairing helpt u de veelheid van het constituerende deel binnen de assemblage als uitkomst te definiëren. Het aantal objecten kan ook worden afgebeeld.
Een auto heeft een wiel nodig om goed te kunnen functioneren. Hetzelfde kunnen we echter niet zeggen van een auto. Dezelfde logica kan worden toegepast op fietsen, fietsen of elk ander voertuig, maar niet op een bepaalde auto.
Hier is het wielobject zelfs zonder het autoobject betekenisvol. Het staat bekend als een aggregatierelatie.