Obiectiv-orientate de programare este o paradigmă comună, care este utilizat în dezvoltarea de software. Obiectul este o instanță a unei clase care este creată de clase. Obiectele colaborează între ele prin intermediul Link-urilor. Legăturile sunt conexiunea fizică și conceptuală dintre obiecte. O colecție de link-uri cu structură și semantică similare este descrisă ca o asociere .
Diagramă de comparație
Bazele de comparație | Agregare | Compoziţie |
---|---|---|
De bază | În agregare există o relație în care un copil poate exista independent de părinte. | În compoziție, nu poate exista independent de părinte. |
Tip de relație | "are o" | "parte din" |
Tipul de asociere | Asociere slabă | Asociere puternică |
Simbol de design UML | Reprezentată de un diamant gol lângă clasa de asamblare. | Reprezentată de un diamant solid lângă clasa de asamblare. |
Funcţie | Ștergerea ansamblului nu afectează părțile sale. | Dacă obiectul de clasă proprietară este șters, acesta ar putea afecta în mod semnificativ obiectul de clasă care conține. |
Definiția Aggregation
Agregarea poate fi definită ca o relație cu o clasă de asamblare a clasei constituente. Relația dintre două obiecte poate fi reprezentată prin desenarea unui segment de linie în UML (Unified Modeling Language).
De exemplu, o mașină este formată din roți, motor, cutie de viteze, direcție, corpul principal etc. O mașină este un ansamblu, iar celelalte părți componente ale acesteia. Masina pe roți este o agregare, mașina pentru motoare este o altă agregare și așa mai departe. Fiecare pereche individuală este definită pentru a specifica multiplicitatea fiecărei părți constitutive în cadrul ansamblului, ca rezultat, numărul de obiecte poate fi de asemenea descris.
Agregarea este un tip de asociere care descrie un tip de "are un" tip de relație între obiecte. De exemplu, o mașină "are o" cutie de viteze, iar o mașină "are un" motor . Pentru relația one-to-many, un exemplu este o mașină "are" multe roți .
Definiția compoziției
Compoziția este, de asemenea, un tip de asociere, dar o formă mai restrictivă. Este reprezentat în UML de un diamant solid mic adiacent clasei de asamblare.
Astfel, compoziția înseamnă proprietatea părții constitutive a întregului. Acest lucru ar duce la creșterea confortului pentru programare. Compoziția poate declanșa ștergerea obiectului constitutiv prin ștergerea unui obiect de asamblare.
Compoziția descrie o relație "part of" . De exemplu, o frunză este o parte a unui copac, dacă arborele este distrus, atunci frunzele trebuie să fie distruse.
Diferențe cheie între agregare și compoziție
- Agregarea indică o relație în care un copil și entități-părinte pot exista independent. În raport cu compoziția, entitatea copilului depinde de părinte.
- În agregare există o relație "are a", în timp ce în compoziție există o relație "part of" între ansamblul și obiectele clasei constituente.
- Agregarea este o asociere slabă, în timp ce compoziția este o asociere puternică deoarece are mai multe constrângeri.
- În designul UML agregarea este descrisă de un diamant gol. În contrast, compoziția este ilustrată de un diamant solid.
Concluzie
În ansamblu, părțile constitutive au existența independentă și pot fi împărțite sau realocate la agregate sau la asamblarea lor. Pe de altă parte, în compoziție, componenta aparține exact unei singure adunări sau agregate. Mai mult, partea este creată atunci când agregatul este format și partea este distrusă când agregatul este distrus.