Object-georiënteerd programmeren is een gemeenschappelijk paradigma dat wordt gebruikt in softwareontwikkeling. Het object is een instantie van een klasse die is gemaakt door klassen. De objecten werken met elkaar samen via Links. Links zijn de fysieke en conceptuele verbanden tussen objecten. Een verzameling links met een vergelijkbare structuur en semantiek wordt beschreven als een associatie .
Vergelijkingstabel
Basis voor vergelijking | Aggregatie | Samenstelling |
---|---|---|
basis- | Samengevoegd vertonen ze een relatie waarin een kind onafhankelijk van de ouder kan bestaan. | In samenstelling kan het niet onafhankelijk van de ouder bestaan. |
Type relatie | "heeft een" | "deel van" |
Associatietype | Zwakke associatie | Sterke associatie |
UML-ontwerpsymbool | Vertegenwoordigd door een holle diamant naast de assemblageklasse. | Vertegenwoordigd door een solide diamant naast de assemblageklasse. |
Functie | Het verwijderen van de assemblage heeft geen invloed op de onderdelen. | Als het eigenaarklasseobject wordt verwijderd, kan dit het klasseobject van de klasse aanzienlijk beïnvloeden. |
Definitie van aggregatie
Aggregatie kan worden gedefinieerd als een relatie met een assemblageklasse tot een samenstellende klasse. De relatie tussen twee objecten kan worden weergegeven door een lijnsegment te tekenen in UML (Unified Modeling Language).
Een auto bestaat bijvoorbeeld uit wielen, motor, versnellingsbak, besturing, hoofdgedeelte, enz. Een auto is een verzameling en de andere onderdelen zijn de onderdelen ervan. Auto naar wielen is één aggregatie, auto naar motoren is een andere aggregatie, enzovoort. Elke individuele koppeling is gedefinieerd om de veelvoud van elk samenstellend deel binnen het samenstel te specificeren als uitkomst kan het aantal objecten ook worden afgebeeld.
De aggregatie is een type associatie die een relatie beschrijft tussen de objecten. Bijvoorbeeld, een auto "heeft een" versnellingsbak en een auto "heeft een" motor . Voor de een-op-veel-relatie is een voorbeeld een auto die veel wielen heeft .
Definitie van samenstelling
De compositie is ook een soort associatie maar een meer beperkende vorm. Het wordt in UML vertegenwoordigd door een uiterst klein, vast diamant naast de assemblageklasse.
Compositie betekent dus eigendom van het samenstellende deel van het geheel. Dit zou uiteindelijk het gemak voor de programmering vergroten. De compositie kan het verwijderen van het samenstellende object activeren door het verwijderen van een assembly-object.
De compositie beschrijft een "deel van" relatie. Een blad is bijvoorbeeld een deel van een boom, als de boom wordt vernietigd, moeten de bladeren worden vernietigd.
Belangrijkste verschillen tussen aggregatie en samenstelling
- Aggregatie geeft een relatie aan waarbij een onderliggende en bovenliggende entiteiten onafhankelijk kunnen bestaan. Tegenover, in samenstelling, is de onderliggende entiteit afhankelijk van de ouder.
- Samengevoegd bestaat er een "heeft een" relatie, terwijl er in compositie een "deel van" relatie bestaat tussen de assembly en de samenstellende klassenobjecten.
- Aggregatie is een zwakke associatie, terwijl de compositie een sterke associatie is omdat deze meer beperkingen heeft.
- In UML-ontwerp wordt de aggregatie beschreven door een holle diamant. De compositie daarentegen is afgebeeld met een massieve diamant.
Conclusie
Samengevoegd hebben de samenstellende delen het onafhankelijke bestaan en kunnen ze worden gedeeld of opnieuw worden toegewezen aan aggregaten of de assemblage ervan. Aan de andere kant, in samenstelling, behoort het samenstellende deel tot precies één samenstel of aggregaat. Bovendien wordt het onderdeel gemaakt wanneer het aggregaat wordt gevormd en het onderdeel wordt vernietigd wanneer het aggregaat wordt vernietigd.