Skillnaden mellan aggregation och komposition

Innehållsförteckning:

Skillnaden mellan aggregation och komposition
Skillnaden mellan aggregation och komposition

Video: Skillnaden mellan aggregation och komposition

Video: Skillnaden mellan aggregation och komposition
Video: Association(HAS-A) Aggregation And Composition in Java [MOST COMMONLY ASKED INTERVIEW QUESTION] 2024, November
Anonim

nyckelskillnad – aggregation vs komposition

Objektorienterad programmering (OOP) är ett vanligt paradigm inom mjukvaruutveckling. Objektet är en instans av en klass. Det är inte möjligt att skapa objekt på en gång. Det bör finnas en ritning eller en beskrivning för att skapa ett objekt. Den ritningen är känd som en klass. En klass innehåller egenskaper och metoder. Objekt skapas med hjälp av klasser. Klass och objekt liknar en plan och ett hus i den verkliga världen. Det går inte att bygga ett hus utan en ordentlig plan. På samma sätt används en klass för att skapa ett objekt. Ett objekt samarbetar med andra objekt. En länk med representerar förhållandet mellan två eller flera objekt kallas en "association". Aggregation och sammansättning är typer av föreningar. De beskriver förhållandet mellan klasser. Den här artikeln diskuterar skillnaden mellan aggregering och sammansättning. Den viktigaste skillnaden mellan aggregering och sammansättning är att aggregering är en association mellan två objekt som beskriver "har ett" förhållande och sammansättning är en mer specifik typ av aggregering som innebär ägande.

Vad är aggregation?

En relation mellan två objekt visas genom att dra en linje i Unified Modeling Language (UML). Länken är en förening. UML hjälper till att få en visuell representation av systemet. Det är annorlunda än vanliga programmeringsspråk. Association definierar också mångfalden av objekt. De är en-till-en, en-till-många och många-till-många. När ett enda objekt av klass A är associerat med det enda objektet i klass B, är det ett en-till-en-förhållande. Ett exempel är en författare som skriver en bok. I det exemplet skriver en författare en bok.

När ett objekt i klass A är associerat med många objekt i klass B är det ett en-till-många-förhållande. Ett exempel är att en avdelning kan ha många anställda. När objektet i klass A är associerat med många objekt i klass B och ett objekt i klass B är associerat med många objekt i klass A, är det en många-till-många-association. Ett exempel är att en anställd kan arbeta med flera projekt och ett projekt kan ha flera anställda.

Aggregation är typassociation som ytterligare beskriver förhållandet mellan objekt. Aggregation beskriver "har ett" förhållande. Några exempel som beskriver förhållandet är, en elev "har ett" student-id, ett fordon "har en" motor. Det är också möjligt att utöka en stor mängd med relationen. Några exempel är att en bank "har många" bankkonton, en klass "har många" elever. Det kan förklaras med exemplet nedan.

Skillnaden mellan aggregation och sammansättning
Skillnaden mellan aggregation och sammansättning

Figur 01: Aggregation

Enligt exemplet ovan består klassrummet av en elev eller många elever. Multiplikitet används också för att ange antalet objekt. Den beskriver att ett klassrum har flera elever. Diamantens symbol representerar aggregeringen i UML. Elevobjekt förlitar sig inte på klassobjektet. Om klassobjektet förstörs påverkar det inte elevobjekten. Dessa objekt kommer fortfarande att finnas.

Vad är komposition?

Kompositionen är en mer specifik form av aggregering. Den beskriver ägandet. Det kan förklaras med exemplet nedan.

Nyckelskillnaden mellan aggregation och sammansättning
Nyckelskillnaden mellan aggregation och sammansättning

Figur 02: Komposition

Enligt ovan består bokobjektet av sidobjekt eller sidor. Multiplikitet används också för att ange antalet objekt. Den beskriver att ett klassrum har flera elever. Symbolen för diamant som är markerad representerar kompositionen i UML. Eftersom boken har en sida eller många sidor är den en sammanställning, men den är mer specificerad. Om bokobjektet förstörs, så förstörs även sidobjekten. Sidobjekt kan inte existera utan bokobjektet. Därför är sammansättningen en mer specifik form av aggregering som innebär ägande.

Vilka är likheterna mellan aggregation och sammansättning?

  • Båda används i objektorienterad programmering.
  • Båda används i Unified Modeling Language (UML) för att få en visuell förståelse av systemet.

Vad är skillnaden mellan aggregation och komposition?

Aggregation vs Composition

Aggregation är en association mellan två objekt som beskriver "har ett" förhållande. Kompositionen är den mest specifika typen av aggregering som innebär ägande.
UML-symbol
Aggregation betecknas med en diamant. Komposition betecknas med en markerad diamant.
Functionality
I aggregering, om det ägande objektet förstörs, kommer det inte att påverka det innehållande objektet. I sammansättning, om det ägande objektet förstörs, kommer det att påverka det innehållande objektet.

Sammanfattning – Aggregation vs Composition

Objektorienterad programmering är ett stort paradigm inom mjukvaruutveckling. I OOP modelleras systemet med hjälp av objekt. Dessa objekt existerar inte isolerat. Objekt samarbetar med andra objekt. Förhållandet mellan objekt är känt som association. Aggregation och sammansättning är typer av associationer. Skillnaden mellan aggregering och sammansättning är att aggregering är en association mellan två objekt som beskriver "har ett" förhållande och sammansättning är den mer specifika typen av aggregering som innebär ägande. Aggregation och sammansättning hjälper båda till att förstå systemets beteende.

Ladda ned PDF-versionen av Aggregation vs Composition

Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här Skillnaden mellan aggregation och komposition

Rekommenderad: