Verschil tussen aggregatie en samenstelling

Belangrijkste verschil - Aggregatie versus samenstelling
 

Object-Oriented Programming (OOP) is een veelvoorkomend paradigma in softwareontwikkeling. Het object is een instantie van een klasse. Het is niet mogelijk om tegelijkertijd 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 behulp van klassen. Klasse en object zijn vergelijkbaar met een plan en huis in de echte wereld. Het is niet mogelijk om een ​​huis te bouwen zonder een goed plan. Op dezelfde manier wordt een klasse gebruikt om een ​​object te maken. Een object werkt samen met andere objecten. Een koppeling met de relatie tussen twee of meer objecten wordt een "associatie" genoemd. Aggregatie en samenstelling zijn typen associaties. Ze beschrijven de relatie tussen klassen. Dit artikel bespreekt het verschil tussen aggregatie en samenstelling. De belangrijk verschil tussen aggregatie en samenstelling is dat aggregatie is een associatie tussen twee objecten die de relatie "heeft een" beschrijft en samenstelling is een meer specifiek type aggregatie dat eigendom impliceert.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is aggregatie
3. Wat is samenstelling
4. Overeenkomsten tussen aggregatie en compositie
5. Vergelijking zij aan zij - Aggregatie versus samenstelling in tabelvorm
6. Samenvatting

Wat is aggregatie?

Een relatie tussen twee objecten wordt getoond door een lijn te tekenen in Unified Modeling Language (UML). De link is een associatie. UML helpt om een ​​visuele weergave van het systeem te krijgen. Het is anders dan gewone programmeertalen. Associatie definieert ook de veelheid van objecten. Ze zijn één-op-één, één-op-veel en veel-op-veel. Wanneer een enkel object van klasse A is gekoppeld aan 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 is één auteur een boek aan het schrijven.

Wanneer een object van klasse A is gekoppeld aan veel objecten van klasse B, is dit een een-op-veel-relatie. Een voorbeeld is, een afdeling kan veel werknemers hebben. Wanneer het object van klasse A is geassocieerd met veel objecten van klasse B en een object van klasse B is geassocieerd met veel objecten van klasse A, is het een veel-op-veel associatie. Een voorbeeld is, een werknemer kan aan meerdere projecten werken en een project kan meerdere werknemers hebben.

Aggregatie is type-associatie die de relatie tussen objecten verder beschrijft. Aggregatie beschrijft de relatie "heeft een". Enkele voorbeelden die de relatie beschrijven, zijn: een student 'heeft een' student-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. Dit kan worden uitgelegd aan de hand van het onderstaande voorbeeld.

Figuur 01: Aggregatie

Volgens het bovenstaande voorbeeld bestaat het klaslokaal uit een student of veel studenten. Multipliciteit wordt ook gebruikt om het aantal objecten aan te geven. Het beschrijft dat een klaslokaal meerdere studenten heeft. Het symbool van de diamant vertegenwoordigt de aggregatie in UML. Studentobjecten zijn niet afhankelijk van het klasseobject. Als het klasseobject wordt vernietigd, heeft dit geen invloed op de studentenobjecten. Die objecten zullen nog steeds bestaan.

Wat is samenstelling?

De samenstelling is een meer specifieke vorm van aggregatie. Het beschrijft het eigendom. Dit kan worden uitgelegd aan de hand van het onderstaande voorbeeld.

Figuur 02: Samenstelling

Volgens het bovenstaande bestaat het boekobject uit een paginaobject of pagina's. Multipliciteit wordt ook gebruikt om het aantal objecten aan te geven. Het beschrijft dat een klaslokaal meerdere studenten heeft. Het gemarkeerde symbool van diamant staat voor de compositie in UML. Omdat het boek een pagina of veel pagina's bevat, 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 samenstelling?

  • Beide worden gebruikt in 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 samenstelling?

Aggregatie versus samenstelling

Aggregatie is een associatie tussen twee objecten die de relatie 'heeft een' beschrijft. De samenstelling is het meest specifieke type aggregatie dat eigendom impliceert.
 UML-symbool
Aggregatie wordt aangegeven met een diamant. Compositie wordt aangegeven door een gemarkeerde diamant.
functionaliteit
Als aggregatie het eigendom van het object vernietigt, heeft dit geen effect op het bevattende object. Als het bezitsobject vernietigd is, heeft het in samenstelling een effect op het bevattende object.

Samenvatting - Aggregatie versus samenstelling 

Object-georiënteerd programmeren is een belangrijk paradigma in softwareontwikkeling. In OOP wordt het systeem gemodelleerd met behulp van objecten. Deze objecten bestaan ​​niet geïsoleerd. Objecten werken samen met andere objecten. De relatie tussen objecten staat bekend als associatie. Aggregatie en samenstelling zijn associatietypen. Het verschil tussen aggregatie en compositie is dat aggregatie een associatie is tussen twee objecten die de relatie 'heeft een' beschrijft en samenstelling is het specifiekere type aggregatie dat eigendom impliceert. Aggregatie en compositie helpen beide om het gedrag van het systeem te begrijpen.

Download de PDF-versie van Aggregation vs Composition

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download hier de pdf-versie. Verschil tussen aggregatie en compositie

Referentie:

1.tutorialspoint.com. "OOAD Object Model." Het punt. Beschikbaar Hier  
2.6 5 Gebruik van aggregatie en samenstelling, People career, 22 mei 2015. Beschikbaar Hier