Aggregation är en koppling mellan två objekt som beskriver förhållandet "has-a". Sammansättningen är den mer specifika typen av aggregering som innebär ägande. De nyckelskillnad mellan aggregering och komposition i Java är det, om det inneboende föremålet kan existera utan att det äger objektet, är det en aggregering, och om det inneboende objektet inte kan existera utan att ägandeobjektet existerar är det en komposition.
Objektorienterad programmering (OOP) är ett viktigt paradigm inom mjukvaruutveckling. Det används för att modellera programvaran med hjälp av objekt. Objekten skapas med hjälp av klasser. En klass består av egenskaper och metoder. Det finns flera objekt i programvara. Varje objekt samverkar med varandra genom meddelandet som passerar. Förhållandet mellan två objekt är känt som en förening. Både aggregering och sammansättning är två typer av association. Relationen "har-a" beskriver att ett objekt kan använda ett annat objekt. Sammanslagning och sammansättning kan implementeras i OOP-stödjande språk. Om det inneboende objektet kan existera utan att det äger objektet, är föreningen mellan dessa två objekt en aggregering. Om det inneboende objektet inte kan existera utan att det äger objektet, är föreningen mellan de två objekten en komposition.
1. Översikt och nyckelskillnad
2. Vad är Aggregation i Java
3. Vad är komposition i Java
4. Likheter mellan aggregering och komposition i Java
5. Jämförelse vid sida vid sida - Aggregation vs Composition i Java i tabellform
6. Sammanfattning
Sammanslagning är en typ av förening. Om en klass har en företagsreferens är den känd som aggregering. Aggregation representerar har-ett förhållande. Ett studentobjekt kan ha egenskaper som student_id, namn, adress. Detta objekt kan också ha ett annat objekt som heter adress med egen information som stad, stat, land. I den här situationen har studenten en företagsreferensadress. Det är ett "has-a" -förhållande.
Figur 01: Marks Class
Figur 02: Huvudprogrammet för att beskriva Aggregation
Enligt ovanstående program består klassmärket av tre egenskaper som är matematik, engelska och vetenskapsmärken. Studenten har ett föremål för Marks. Den har egna egenskaper som är tecken på matematik, engelska och vetenskap. I huvudmetoden skapas ett objekt av Marks och värdena tilldelas värden. Studentobjektet som är s1 kan använda markörobjektet som är m1. Därför har Student och Marks "has-a" -förhållandet. Marks-objektet kan existera utan studentobjektet. Därför är det en aggregering.
Sammansättning är en typ av association. Det är en specifik aggregeringsform som innebär ägande. Antag att det finns två klasser som kallas klass A och B. Om objektet till klass B inte kan existera om objektet till klass A förstörs, så är det en komposition. En bok består av många sidor. Om boken förstörs, kommer sidorna också att förstöra. Sidobjekten kan inte existera utan bokobjektet. Se nedan programmet.
Figur 03: Klassrumsklass
Figur 04: Skolklass
Figur 05: Huvudprogrammet för att beskriva kompositionen
Enligt ovanstående program har klassrummet två egenskaper som är namn och numOfStudents. Skolan är en samling klassrumsobjekt. I huvudmetoden skapas två klassrumsobjekt. De läggs till i "klassrum". Dessa "klassrum" skickas till skolobjektet. Slutligen skrivs klassrumsnamnet och numret av eleverna genom att iterera genom samlingen. Om skolobjektet förstörs kommer klassrumsobjekten att förstöra. Detta är ett exempel på komposition. Det innehåller också "has-a" -förhållandet och innebär också ägande.
Aggregation vs Composition i Java | |
Aggregation är en koppling mellan två objekt som beskriver förhållandet "har ett". | Sammansättning är en mer specifik typ av aggregering som innebär ägande. |
Användande | |
Aggregation används när ett objekt använder ett annat objekt. | Sammansättning används när ett objekt äger ett annat objekt. |
Påverka objekt | |
Sammanfattningsvis påverkar ej ägandeobjektet det innehåll som innehas. | I sammansättning kommer förstörelse av ägandeobjektet att påverka det inneboende objektet. |
Sammanslagning och sammansättning är två begrepp i OOP. Relationen "har-a" beskriver att ett objekt kan använda ett annat objekt. Aggregation är en koppling mellan två objekt som beskriver förhållandet "has-a". Sammansättning är en mer specifik typ av aggregering som innebär ägande. Skillnaden mellan aggregering och sammansättning i Java är att om det inneboende objektet kan existera utan att det äger objektet är det en aggregering och om det inneboende objektet inte kan existera utan att det äger objektet är det en komposition.
1. "Förening, sammansättning och aggregering i Java." GeeksforGeeks, 8 februari 2018. Tillgänglig här
2. "Aggregation i Java - Javatpoint." Java Point. Tillgänglig här