Nøkkelforskjell – aggregasjon vs sammensetning
Objektorientert programmering (OOP) er et vanlig paradigme innen programvareutvikling. Objektet er en forekomst av en klasse. Det er ikke mulig å lage objekter på en gang. Det bør være en blåkopi eller en beskrivelse for å lage et objekt. Den blåkopien er kjent som en klasse. En klasse inneholder egenskaper og metoder. Objekter lages ved hjelp av klasser. Klasse og objekt ligner på en plan og et hus i den virkelige verden. Det er ikke mulig å bygge et hus uten en skikkelig plan. På samme måte brukes en klasse til å lage et objekt. Et objekt samarbeider med andre objekter. En kobling med representerer forholdet mellom to eller flere objekter kalles en "assosiasjon". Aggregasjon og sammensetning er typer assosiasjoner. De beskriver forholdet mellom klassene. Denne artikkelen diskuterer forskjellen mellom aggregering og sammensetning. Hovedforskjellen mellom aggregering og sammensetning er at aggregering er en assosiasjon mellom to objekter som beskriver «har et» forhold, og sammensetning er en mer spesifikk type aggregering som innebærer eierskap.
Hva er aggregering?
Et forhold mellom to objekter vises ved å tegne en linje i Unified Modeling Language (UML). Linken er en forening. UML hjelper til med å få en visuell representasjon av systemet. Det er annerledes enn vanlige programmeringsspråk. Association definerer også mangfoldet av objekter. De er en-til-en, en-til-mange og mange-til-mange. Når et enkelt objekt av klasse A er assosiert med enkeltobjektet i klasse B, er det et en-til-en-forhold. Et eksempel er en forfatter som skriver en bok. I det eksemplet skriver en forfatter en bok.
Når ett objekt i klasse A er assosiert med mange objekter i klasse B, er det en en-til-mange-relasjon. Et eksempel er at en avdeling kan ha mange ansatte. Når objektet i klasse A er assosiert med mange objekter i klasse B og et objekt i klasse B er assosiert med mange objekter i klasse A, er det en mange-til-mange assosiasjon. Et eksempel er at en ansatt kan jobbe med flere prosjekter og et prosjekt kan ha flere ansatte.
Aggregasjon er typeassosiasjon som ytterligere beskriver forholdet mellom objekter. Aggregasjon beskriver "har et" forhold. Noen eksempler som beskriver forholdet er, en student "har en" student-ID, et kjøretøy "har en" motor. Det er også mulig å utvide et stort kvantum med forholdet. Noen eksempler er at en bank "har mange" bankkontoer, en klasse "har mange" elever. Det kan forklares ved hjelp av eksemplet nedenfor.
Figur 01: Aggregering
I følge eksemplet ovenfor består klasserommet av en elev eller mange elever. Multiplisitet brukes også for å angi antall objekter. Den beskriver at ett klasserom har flere elever. Symbolet på diamanten representerer aggregeringen i UML. Elevobjekter er ikke avhengige av klasseobjektet. Hvis klasseobjektet blir ødelagt, vil det ikke påvirke elevobjektene. Disse objektene vil fortsatt eksistere.
Hva er komposisjon?
Komposisjonen er en mer spesifikk form for aggregering. Den beskriver eierskapet. Det kan forklares ved hjelp av eksemplet nedenfor.
Figur 02: Komposisjon
I henhold til ovenstående består bokobjektet av sideobjekt eller sider. Multiplisitet brukes også for å angi antall objekter. Den beskriver at ett klasserom har flere elever. Symbolet på diamant som er uthevet representerer komposisjonen i UML. Ettersom boken har en side eller mange sider, er den en aggregering, men den er mer spesifisert. Hvis bokobjektet blir ødelagt, blir også sideobjektene ødelagt. Sideobjekter kan ikke eksistere uten bokobjektet. Derfor er sammensetningen en mer spesifikk form for en aggregering som innebærer eierskap.
Hva er likhetene mellom aggregasjon og komposisjon?
- Begge brukes i objektorientert programmering.
- Begge brukes i Unified Modeling Language (UML) for å få en visuell forståelse av systemet.
Hva er forskjellen mellom aggregasjon og komposisjon?
Aggregasjon kontra komposisjon |
|
Aggregasjon er en assosiasjon mellom to objekter som beskriver "har et" forhold. | Komposisjonen er den mest spesifikke typen aggregering som innebærer eierskap. |
UML-symbol | |
Aggregering er merket med en diamant. | Komposisjonen er merket med en uthevet diamant. |
Functionality | |
I aggregering, hvis eierobjektet blir ødelagt, vil det ikke påvirke det inneholdende objektet. | I sammensetningen, hvis eierobjektet blir ødelagt, vil det påvirke det inneholdende objektet. |
Summary – Aggregation vs Composition
Objektorientert programmering er et viktig paradigme innen programvareutvikling. I OOP er systemet modellert ved hjelp av objekter. Disse objektene eksisterer ikke isolert. Objekter samarbeider med andre objekter. Forholdet mellom objekter er kjent som assosiasjon. Aggregasjon og sammensetning er assosiasjonstyper. Forskjellen mellom aggregering og sammensetning er at aggregering er en assosiasjon mellom to objekter som beskriver "har et" forhold og sammensetning er den mer spesifikke typen aggregering som innebærer eierskap. Aggregering og sammensetning bidrar begge til å forstå hvordan systemet fungerer.
Last ned PDF-versjonen av Aggregation vs Composition
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til offline-formål i henhold til sitat. Last ned PDF-versjon her Forskjellen mellom aggregasjon og komposisjon