Objektorienteret programmering (OOP) er et almindeligt paradigme inden for softwareudvikling. Objektet er et eksempel på en klasse. Det er ikke muligt at oprette objekter på én gang. Der skal være en plan eller en beskrivelse for at oprette et objekt. Denne plan er kendt som en klasse. En klasse indeholder egenskaber og metoder. Objekter oprettes ved hjælp af klasser. Klasse og objekt ligner en plan og et hus i den virkelige verden. Det er ikke muligt at bygge et hus uden en ordentlig plan. Ligeledes bruges en klasse til at oprette et objekt. Et objekt samarbejder med andre objekter. Et link med repræsenterer forholdet mellem to eller flere objekter kaldes en "forening". Aggregation og sammensætning er typer foreninger. De beskriver forholdet mellem klasser. Denne artikel diskuterer forskellen mellem aggregering og sammensætning. Det vigtigste forskel mellem aggregering og sammensætning er det aggregering er en tilknytning mellem to objekter, der beskriver “har et” -forhold, og sammensætning er en mere specifik type aggregering, der indebærer ejerskab.
1. Oversigt og nøgleforskel
2. Hvad er aggregering
3. Hvad er sammensætning
4. Ligheder mellem aggregering og sammensætning
5. Sammenligning side ved side - Aggregation vs sammensætning i tabelform
6. Resume
Et forhold mellem to objekter vises ved at tegne en linje i Unified Modelling Language (UML). Linket er en forening. UML hjælper med at få en visuel repræsentation af systemet. Det er anderledes end almindelige programmeringssprog. Associering definerer også mangfoldigheden af objekter. De er en til en, en til mange og mange til mange. Når et enkelt objekt i klasse A er tilknyttet det enkelte objekt i klasse B, er det en en-til-en-relation. Et eksempel er en forfatter, der skriver en bog. I dette eksempel skriver en forfatter en bog.
Når et objekt i klasse A er forbundet med mange objekter i klasse B, er det et en-til-mange-forhold. Et eksempel er, at en afdeling kan have mange ansatte. Når objektet i klasse A er forbundet med mange objekter i klasse B, og et objekt af klasse B er forbundet med mange objekter i klasse A, er det en mange-til-mange-forening. Et eksempel er, at en medarbejder kan arbejde på flere projekter, og et projekt kan have flere ansatte.
Aggregation er typeforening, der yderligere beskriver forholdet mellem genstande. Aggregation beskriver "har et" forhold. Nogle eksempler, der beskriver forholdet, er, at en studerende "har en" student-id, et køretøj "har en" motor. Det er også muligt at udvide en stor mængde med forholdet. Nogle eksempler er, at en bank "har mange" bankkonti, en klasse "har mange" studerende. Det kan forklares ved hjælp af nedenstående eksempel.
Figur 01: Aggregation
I henhold til ovenstående eksempel består klasseværelset af en studerende eller mange studerende. Multiplicitet bruges også til at indikere antallet af objekter. Den beskriver, at et klasseværelse har flere studerende. Symbolet for diamanten repræsenterer aggregeringen i UML. Studentobjekter stoler ikke på klasseobjektet. Hvis klasseobjektet ødelægges, påvirker det ikke studentobjekterne. Disse objekter vil stadig eksistere.
Sammensætningen er en mere specifik form for aggregering. Det beskriver ejerskabet. Det kan forklares ved hjælp af nedenstående eksempel.
Figur 02: Sammensætning
I henhold til ovenstående består bogobjektet af sideobjekt eller sider. Multiplicitet bruges også til at indikere antallet af objekter. Den beskriver, at et klasseværelse har flere studerende. Symbolet for diamant, der er fremhævet, repræsenterer sammensætningen i UML. Da bogen har en side eller mange sider, er den en sammenlægning, men den er mere specificeret. Hvis bogobjektet ødelægges, bliver sideobjekter også ødelagt. Sideobjekter kan ikke eksistere uden bogobjektet. Derfor er sammensætningen en mere specifik form for en aggregering, der indebærer ejerskab.
Aggregation vs sammensætning | |
Aggregation er en sammenhæng mellem to objekter, der beskriver ”har et” -forhold. | Sammensætningen er den mest specifikke type aggregering, der indebærer ejerskab. |
UML-symbol | |
Aggregation betegnes med en diamant. | Komposition betegnes med en fremhævet diamant. |
Funktionalitet | |
Samlet set påvirker det ejendom, der er ødelagt, det ejende objekt. | I sammensætning, hvis det ejendom, der er ødelagt, vil det påvirke det indeholdende objekt. |
Objektorienteret programmering er et stort paradigme inden for softwareudvikling. I OOP modelleres systemet ved hjælp af objekter. Disse objekter findes ikke isoleret. Objekter samarbejder med andre objekter. Forholdet mellem objekter kaldes forening. Aggregation og sammensætning er typer af foreninger. Forskellen mellem aggregering og sammensætning er, at aggregering er en tilknytning mellem to objekter, der beskriver ”har et” -forhold, og sammensætning er den mere specifikke type aggregering, der indebærer ejerskab. Aggregering og sammensætning er begge med til at forstå systemets opførsel.
Du kan downloade PDF-version af denne artikel og bruge den til offline-formål som pr. Citatnotat. Download PDF-version her Forskel mellem aggregering og sammensætning
1. Brug af aggregering og komposition, People-karriere, 22. maj 2015. Tilgængelig her