Key Difference – Aggregation vs Composition in Java
Aggregasjon er en assosiasjon mellom to objekter som beskriver "har-et"-forholdet. Sammensetningen er den mer spesifikke typen aggregering som innebærer eierskap. Den viktigste forskjellen mellom aggregering og komposisjon i Java er at hvis det inneholdte objektet kan eksistere uten eksistensen av det eiende objektet, er det en aggregering, og hvis det inneholdte objektet ikke kan eksistere uten eksistensen av det eierobjektet, er det en sammensetning.
Objektorientert programmering (OOP) er et viktig paradigme innen programvareutvikling. Den brukes til å modellere programvaren ved hjelp av objekter. Objektene lages ved hjelp av klasser. En klasse består av egenskaper og metoder. Det er flere objekter i programvaren. Hvert objekt samarbeider med hverandre gjennom meldingsoverføring. Forholdet mellom to objekter er kjent som en assosiasjon. Både aggregering og sammensetning er to typer assosiasjoner. "har-en"-forholdet beskriver at ett objekt kan bruke et annet objekt. Aggregering og komposisjon kan implementeres i OOP-støttespråk. Hvis det inneholdte objektet kan eksistere uten eksistensen av det eierobjektet, er assosiasjonen mellom disse to objektene en aggregering. Hvis det inneholdte objektet ikke kan eksistere uten eksistensen av det eierobjektet, er assosiasjonen mellom disse to objektene en komposisjon.
Hva er aggregering i Java?
Aggregasjon er en type assosiasjon. Hvis en klasse har en enhetsreferanse, er den kjent som aggregering. Aggregasjon representerer har-en-forholdet. Et Student-objekt kan ha egenskaper som student_id, navn, adresse. Dette objektet kan også ha et annet objekt k alt adresse med sin egen informasjon som by, stat, land. I denne situasjonen har studenten en enhetsreferanseadresse. Det er et "har-et"-forhold.
Figur 01: Merker klasse
Figur 02: Hovedprogram for å beskrive aggregering
I følge programmet ovenfor består klassekarakterene av tre egenskaper som er matematikk-, engelsk- og naturfagkarakterer. Studenten har en gjenstand med karakterer. Den har sine egne egenskaper som er kjennetegn på matematikk, engelsk og naturfag. I hovedmetoden opprettes et objekt med merker og merkeverdier tildeles. Elevobjektet som er s1 kan bruke merkeobjektet som er m1. Derfor har Studenten og Marks "har-et"-forholdet. Marks-objektet kan eksistere uten Student Object. Derfor er det en aggregering.
Hva er komposisjon i Java?
Komposisjon er en type assosiasjon. Det er en spesifikk form for aggregering som innebærer eierskap. Anta at det er to klasser k alt klasse A og B. Hvis objektet til klasse B ikke kan eksistere hvis objektet til klasse A blir ødelagt, så er det en sammensetning. En bok består av mange sider. Hvis boken blir ødelagt, vil sidene også ødelegge. Sideobjektene kan ikke eksistere uten bokobjektet. Se programmet nedenfor.
Figur 03: Klasseromsklasse
Figur 04: Skoleklasse
Figur 05: Hovedprogram for å beskrive komposisjon
I følge programmet ovenfor har klasserommet to egenskaper som er navn og antall elever. Skolen er en samling av klasseromsobjekter. I hovedmetoden opprettes to Classroom-objekter. Disse legges til "klasserom". Disse ‘klasserommene’ overføres til skoleobjektet. Til slutt skrives klasserommets navn og antall elever ut ved å iterere gjennom samlingen. Hvis skoleobjektet blir ødelagt, vil også klasseromsobjektene ødelegges. Dette er et eksempel på komposisjon. Den inneholder også «har-et»-forholdet og innebærer også eierskap.
Hva er forholdet mellom aggregasjon og komposisjon i Java?
Aggregasjon og komposisjon er to typer assosiasjoner og komposisjon er en spesialisert type aggregering. Komposisjon er en undergruppe av aggregering
Hva er forskjellen mellom aggregasjon og komposisjon i Java?
Aggregasjon vs komposisjon i Java |
|
Aggregasjon er en assosiasjon mellom to objekter som beskriver "har et" forhold. | Komposisjon er en mer spesifikk type aggregering som innebærer eierskap. |
Bruk | |
Aggregering brukes når ett objekt bruker et annet objekt. | Komposisjon brukes når ett objekt eier et annet objekt. |
Påvirkning på objekter | |
I aggregering vil ikke ødeleggelse av det eierende objektet påvirke objektet som inneholder. | I sammensetningen vil ødeleggelse av det eierende objektet påvirke objektet som inneholder. |
Summary – Aggregation vs Composition in Java
Aggregasjon og komposisjon er to konsepter i OOP. "har-en"-forholdet beskriver at ett objekt kan bruke et annet objekt. Aggregasjon er en assosiasjon mellom to objekter som beskriver "har-en"-forholdet. Komposisjon er en mer spesifikk type aggregering som innebærer eierskap. Forskjellen mellom aggregering og komposisjon i Java er at hvis det inneholdte objektet kan eksistere uten eksistensen av det eiende objektet, er det en aggregering, og hvis det inneholdte objektet ikke kan eksistere uten eksistensen av det eidobjektet, er det en komposisjon.