Diferența dintre agregare și compoziție în UML
Diferența cheie între agregare și compoziție
- Agregarea este un tip de asociere între două obiecte care descrie relația „au o”, în timp ce Compoziția este un tip specific de agregare care implică proprietate.
- Agregarea este indicată folosind o linie dreaptă cu un vârf de săgeată gol la un capăt. Pe de altă parte, compoziția este indicată folosind o linie dreaptă cu un vârf de săgeată umplut la oricare dintre capete.
- Într-o relație de agregare, obiectele care sunt asociate între ele pot rămâne în sfera unui sistem unele fără altele. Dar într-o relație de compoziție, obiectele care sunt asociate unul cu celălalt nu pot rămâne în domeniu unul fără celălalt.
- În agregare, obiectele legate nu depind de celălalt obiect, în timp ce în compoziție, obiectele sunt foarte dependente unele de altele.
- În agregare, ștergerea unui singur element nu afectează un alt element asociat. Dimpotrivă, în compoziție, ștergerea unui singur element afectează un alt element asociat.
- Agregarea este indicată de un diamant plin, în timp ce un diamant gol denotă compoziția.
Ce este agregarea?
Agregarea este un caz special de asociere atunci când un obiect „are-un” alt obiect, pe care îl puteți avea o agregare între ele. Direcția dintre ele vă ajută să specificați ce obiect conține celălalt obiect. Agregarea este cunoscută și ca relație „Has-a”. Este un subtip al unei relații de asociere în UML.
Ce este Compoziția?
Compoziția este un caz special de agregare care vă ajută să specificați o relație între clasa de compoziție și o clasă subordonată (parte).
Diferența dintre agregare și compoziție în UML
Iată diferența principală dintre agregare și compoziție:
agregare | Compoziție |
---|---|
Agregarea este un tip de asociere între două obiecte care descrie și relația „au o”. | Compoziția este un tip specific de agregare care implică proprietate. |
Agregarea este indicată folosind o linie dreaptă cu un vârf de săgeată gol la un capăt. | Compoziția este indicată folosind o linie dreaptă cu un vârf de săgeată umplut la oricare dintre capete. |
Agregarea este o parte a unei relații de asociere. | Compoziția face parte dintr-o relație de asociere. |
Agregarea este considerată un tip slab de asociere. | Compoziția este considerată un tip puternic de asociere. |
Într-o relație de agregare, obiectele care sunt asociate între ele pot rămâne în sfera unui sistem unele fără altele. | Într-o relație de compoziție, obiectele care sunt asociate unul cu celălalt nu pot rămâne în domeniul de aplicare unul fără celălalt. |
În agregare, obiectele legate nu depind de celălalt obiect. | În compoziție, obiectele sunt foarte dependente unele de altele. |
În agregare, ștergerea unui singur element nu afectează un alt element asociat. | În compoziție, ștergerea unui singur element afectează un alt element asociat. |
Exemplu: O mașină are nevoie de o roată, dar nu întotdeauna necesită aceeași roată. O mașină poate funcționa adecvat și cu o altă roată. | Exemplu: Un fișier este plasat în dosar. Dacă cineva șterge folderul, atunci fișierul asociat cu acel folder dat este, de asemenea, șters. |
În agregare, părinte relația cu entitatea copil. |
În compunere, entitatea-mamă deține entitatea copil. |
Este notat cu un diamant umplut | Este notat cu un diamant gol |
Copilul nu are o viață întreagă. | Copilul poate avea o viață întreagă. |
Este reprezentat de un diamant gol lângă clasa de asamblare. | Este reprezentat de un diamant solid lângă clasa de asamblare. |
Ștergerea ansamblului nu afectează niciodată piesele acestuia. | În cazul deținerii unei clase, obiectul este șters. De asemenea, afectează obiectul clasa care conține. |
Agregare vs Compoziție: statistici cheie
agregare | Compoziție | |
---|---|---|
Proprietar | Niciun proprietar | Proprietar unic |
Toată viața | Au viața lor. | Viața proprietarului. |
Obiect copil | Obiectele copil sunt toate independente. | Obiectele copil aparțin unui singur părinte. |
Exemplu de compoziție
Dosarul poate conține multe fișiere, în timp ce fiecare fișier are exact un dosar părinte. Dacă un folder este șters, toate fișierele conținute sunt, de asemenea, eliminate. Într-o agregare compozită, un obiect poate face parte dintr-un singur compozit la un moment dat.
Exemplu de agregare
De exemplu, mașina dvs. este formată din roți, motor, cutie de viteze, direcție și caroseria principală etc. Este un ansamblu, iar celelalte părți sunt componente ale acestuia.
Aici, mașina la volan este o agregare, mașina la motor este o altă agregare, mașina la cutia de viteze alta și așa mai departe.
Acest tip de împerechere vă ajută să definiți multiplicitatea piesei constitutive din cadrul ansamblului ca rezultat al acestuia. Numărul de obiecte poate fi, de asemenea, reprezentat.
O mașină are nevoie de o roată pentru a funcționa corect. Cu toate acestea, nu putem spune același lucru cu o mașină. Aceeași logică poate fi aplicată bicicletei, bicicletei sau oricărui alt vehicul, dar nu unei anumite mașini.
Aici, obiectul roată are sens chiar și fără obiectul mașină. Este cunoscută ca o relație de agregare.