Key Difference – Aggregation vs Composition in Java
Aggregation är en association mellan två objekt som beskriver "har-ett"-förhållandet. Sammansättningen är den mer specifika typen av aggregering som innebär ägande. Den viktigaste skillnaden mellan aggregering och komposition i Java är att om det inneslutna objektet kan existera utan existensen av det ägande objektet, är det en aggregering, och om det inneslutna objektet inte kan existera utan existensen av det ägande objektet är det en komposition.
Objektorienterad programmering (OOP) är ett stort paradigm inom mjukvaruutveckling. Den 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 programvaran. Varje objekt samarbetar med varandra genom att skicka meddelanden. Relationen mellan två objekt är känd som en association. Både aggregering och sammansättning är två typer av association. Relationen "har-ett" beskriver att ett objekt kan använda ett annat objekt. Aggregation och sammansättning kan implementeras i OOP-stödjande språk. Om det inneslutna objektet kan existera utan existensen av det ägande objektet, är associationen mellan dessa två objekt en aggregering. Om det inneslutna objektet inte kan existera utan existensen av det ägande objektet, är associationen mellan dessa två objekt en komposition.
Vad är aggregation i Java?
Aggregation är en typ av förening. Om en klass har en enhetsreferens kallas det aggregering. Aggregation representerar har-en-relationen. Ett Studentobjekt kan ha egenskaper som student_id, namn, adress. Detta objekt kan också ha ett annat objekt som kallas adress med egen information som stad, stat, land. I den här situationen har studenten en enhetsreferensadress. Det är ett "har-ett"-förhållande.
Figur 01: Betygsklass
Figur 02: Huvudprogram för att beskriva aggregation
Enligt ovanstående program består klassen Poäng av tre egenskaper som är Matematik, Engelska och Naturvetenskap. Studenten har ett objekt med poäng. Den har sina egna egenskaper som är kännetecken för matematik, engelska och naturvetenskap. I huvudmetoden skapas ett objekt av märken och märkesvärden tilldelas. Elevobjektet som är s1 kan använda märkesobjektet som är m1. Därför har Student och Marks "har-ett"-förhållandet. Marks-objektet kan existera utan Student Object. Därför är det en aggregering.
Vad är komposition i Java?
Komposition är en typ av association. Det är en specifik form av aggregering som innebär ägande. Antag att det finns två klasser som kallas klass A och B. Om objektet i klass B inte kan existera om objektet i klass A förstörs, så är det en sammansättning. 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 programmet nedan.
Figur 03: Klassrumsklass
Figur 04: Skolklass
Figur 05: Huvudprogram för att beskriva komposition
Enligt programmet ovan har klassrummet två egenskaper som är namn och antal elever. Skolan är en samling klassrumsobjekt. I huvudmetoden skapas två Classroom-objekt. De läggs till i "klassrum". Dessa "klassrum" skickas till skolobjektet. Slutligen skrivs klassrummets namn och antal elever ut genom att iterera genom samlingen. Om skolobjektet förstörs kommer klassrumsobjekten också att förstöras. Detta är ett exempel på komposition. Den innehåller också "har-ett"-förhållandet och antyder också ägande.
Vilket är förhållandet mellan aggregation och komposition i Java?
Aggregation och komposition är två typer av association och komposition är en specialiserad typ av aggregation. Komposition är en delmängd av aggregation
Vad är skillnaden mellan aggregation och komposition i Java?
Aggregation vs Composition in Java |
|
Aggregation är en association mellan två objekt som beskriver "har ett" förhållande. | Komposition är en mer specifik typ av aggregering som innebär ägande. |
Användning | |
Aggregation används när ett objekt använder ett annat objekt. | Komposition används när ett objekt äger ett annat objekt. |
Påverkan på objekt | |
I aggregering, kommer förstörelse av det ägande objektet inte att påverka det innehållande objektet. | I sammansättningen kommer att förstöra det ägande objektet att påverka det innehållande objektet. |
Sammanfattning – Aggregation vs Composition in Java
Aggregation och komposition är två begrepp i OOP. Relationen "har-ett" beskriver att ett objekt kan använda ett annat objekt. Aggregation är en association mellan två objekt som beskriver "har-ett"-förhållandet. Komposition är en mer specifik typ av aggregering som innebär ägande. Skillnaden mellan aggregering och sammansättning i Java är att om det inneslutna objektet kan existera utan existensen av det ägande objektet är det en aggregering och om det inneslutna objektet inte kan existera utan existensen av det ägande objektet är det en komposition.