Belangrijkste verschil - Aggregatie versus samenstelling
Object-Oriented Programming (OOP) is een veelgebruikt paradigma in softwareontwikkeling. Het object is een instantie van een klasse. Het is niet mogelijk om in één keer objecten te maken. Er moet een blauwdruk of een beschrijving zijn om een object te maken. Die blauwdruk staat bekend als een klasse. Een klasse bevat eigenschappen en methoden. Objecten worden gemaakt met klassen. Klasse en object zijn vergelijkbaar met een plattegrond en huis in de echte wereld. Het is niet mogelijk om een huis te bouwen zonder een goed plan. Evenzo wordt een klasse gebruikt om een object te maken. Een object werkt samen met andere objecten. Een link met staat voor de relatie van twee of meer objecten wordt een "associatie" genoemd. Aggregatie en samenstelling zijn soorten associaties. Ze beschrijven de relatie tussen klassen. Dit artikel bespreekt het verschil tussen aggregatie en compositie. Het belangrijkste verschil tussen aggregatie en compositie is dat aggregatie een associatie is tussen twee objecten die de 'heeft een'-relatie beschrijft en dat compositie een meer specifiek type aggregatie is dat eigendom impliceert.
INHOUD
1. Overzicht en belangrijkste verschil
2. Wat is aggregatie
3. Wat is compositie
4. Overeenkomsten tussen aggregatie en compositie
5. Vergelijking zij aan zij - Aggregatie versus compositie in tabelvorm
6. Samenvatting
Wat is aggregatie?
Een relatie tussen twee objecten wordt getoond door een lijn te trekken in Unified Modeling Language (UML). De link is een vereniging. UML helpt om een visuele weergave van het systeem te krijgen. Het is anders dan gewone programmeertalen. Associatie definieert ook de veelheid aan objecten. Ze zijn één-op-één, één-op-veel en veel-op-veel. Wanneer een enkel object van klasse A wordt geassocieerd met het enkele object van klasse B, is dat een één-op-één-relatie. Een voorbeeld is een auteur die een boek schrijft. In dat voorbeeld schrijft één auteur een boek.
Wanneer een object van klasse A wordt geassocieerd met veel objecten van klasse B, is het een een-op-veel-relatie. Een voorbeeld is dat een afdeling veel medewerkers kan hebben. Wanneer het object van klasse A wordt geassocieerd met veel objecten van klasse B en een object van klasse B wordt geassocieerd met veel objecten van klasse A, is het een veel-op-veel-associatie. Een voorbeeld is, een medewerker kan aan meerdere projecten werken en een project kan meerdere medewerkers hebben.
Aggregatie is typeassociatie die de relatie tussen objecten nader beschrijft. Aggregatie beschrijft "heeft een" relatie. Enkele voorbeelden die de relatie beschrijven zijn: een leerling “heeft een” leerling-ID, een voertuig “heeft een” motor. Het is ook mogelijk om een grote hoeveelheid uit te breiden met de relatie. Enkele voorbeelden zijn: een bank "heeft veel" bankrekeningen, een klas "heeft veel" studenten. Het kan worden uitgelegd aan de hand van het onderstaande voorbeeld.
Figuur 01: Aggregatie
Volgens het bovenstaande voorbeeld bestaat het klaslokaal uit een leerling of uit veel leerlingen. Multipliciteit wordt ook gebruikt om het aantal objecten aan te geven. Het beschrijft dat een klaslokaal meerdere studenten heeft. Het symbool van de diamant staat voor de aggregatie in UML. Studentobjecten zijn niet afhankelijk van het klasseobject. Als het klasseobject wordt vernietigd, heeft dit geen invloed op de leerlingobjecten. Die objecten zullen nog steeds bestaan.
Wat is compositie?
De samenstelling is een meer specifieke vorm van aggregatie. Het beschrijft het eigendom. Het kan worden uitgelegd aan de hand van het onderstaande voorbeeld.
Figuur 02: Samenstelling
Volgens het bovenstaande bestaat het boekobject uit pagina-object of pagina's. Multipliciteit wordt ook gebruikt om het aantal objecten aan te geven. Het beschrijft dat een klaslokaal meerdere studenten heeft. Het symbool van diamant dat is gemarkeerd, vertegenwoordigt de compositie in UML. Omdat het boek een pagina of veel pagina's heeft, is het een aggregatie, maar het is meer gespecificeerd. Als het boekobject wordt vernietigd, worden de pagina-objecten ook vernietigd. Pagina-objecten kunnen niet bestaan zonder het boekobject. Daarom is de compositie een meer specifieke vorm van een aggregatie die eigendom impliceert.
Wat zijn de overeenkomsten tussen aggregatie en compositie?
- Beide worden gebruikt bij Object Oriented Programming.
- Beide worden gebruikt in Unified Modeling Language (UML) om een visueel begrip van het systeem te krijgen.
Wat is het verschil tussen aggregatie en compositie?
Diff Artikel Midden voor Tafel
Aggregatie versus samenstelling |
|
Aggregatie is een associatie tussen twee objecten die de "heeft een" -relatie beschrijft. | De compositie is het meest specifieke type aggregatie dat eigendom impliceert. |
UML-symbool | |
Aggregatie wordt aangegeven met een diamant. | Samenstelling wordt aangegeven door een gemarkeerde diamant. |
Functionaliteit | |
Samengevat, als het object dat de eigenaar is vernietigd, heeft dit geen invloed op het object dat de eigenaar is. | In compositie, als het bezittende object wordt vernietigd, heeft dit invloed op het bevattende object. |
Samenvatting - Aggregatie versus samenstelling
Objectgeoriënteerd programmeren is een belangrijk paradigma in softwareontwikkeling. In OOP wordt het systeem gemodelleerd met behulp van objecten. Deze objecten staan niet op zichzelf. Objecten werken samen met andere objecten. De relatie tussen objecten staat bekend als associatie. Aggregatie en samenstelling zijn soorten associaties. Het verschil tussen aggregatie en compositie is dat aggregatie een associatie is tussen twee objecten die de 'heeft een'-relatie beschrijft en dat compositie het meer specifieke type aggregatie is dat eigendom impliceert. Aggregatie en samenstelling helpen beide om het gedrag van het systeem te begrijpen.
Download de pdf-versie van aggregatie versus compositie
U kunt de PDF-versie van dit artikel downloaden en voor offline doeleinden gebruiken volgens de citatienota. Download hier de pdf-versie Difference Between Aggregation and Composition