Diferența cheie - agregare vs compoziție
Programarea orientată pe obiecte (OOP) este o paradigmă comună în dezvoltarea de software. Obiectul este o instanță a unei clase. Nu este posibil să creați obiecte simultan. Ar trebui să existe un plan sau o descriere pentru a crea un obiect. Acel plan este cunoscut ca o clasă. O clasă conține proprietăți și metode. Obiectele sunt create folosind clase. Clasa și obiectul sunt similare cu un plan și o casă din lumea reală. Nu este posibil să construiți o casă fără un plan adecvat. La fel, o clasă este utilizată pentru a crea un obiect. Un obiect colaborează cu alte obiecte. O legătură cu reprezintă relația a două sau mai multe obiecte este numită „asociere”. Agregarea și compoziția sunt tipuri de asociații. Ei descriu relația dintre clase. Acest articol discută diferența dintre agregare și compoziție. Diferența cheie dintre agregare și compoziție este că agregarea este o asociere între două obiecte care descrie relația „are o” relație și compoziția este un tip mai specific de agregare care implică proprietatea.
CUPRINS
1. Prezentare generală și diferența cheie
2. Ce este agregarea
3. Ce este compoziția
4. Asemănări între agregare și compoziție
5. Comparație side by side - Agregare vs compoziție în formă tabelară
6. Rezumat
Ce este agregarea?
O relație între două obiecte este prezentată prin trasarea unei linii în Unified Modeling Language (UML). Legătura este o asociație. UML ajută la obținerea unei reprezentări vizuale a sistemului. Este diferit de limbajele de programare obișnuite. Asocierea definește, de asemenea, multiplicitatea obiectelor. Sunt unu-la-unu, unu-la-mulți și mulți-la-mulți. Atunci când un singur obiect din clasa A este asociat cu obiectul unic din clasa B, aceasta este o relație unu-la-unu. Un exemplu este un autor care scrie o carte. În acest exemplu, un autor scrie o carte.
Când un obiect din clasa A este asociat cu multe obiecte din clasa B, este o relație de la unu la mulți. Un exemplu este că un departament poate avea mulți angajați. Când obiectul clasei A este asociat cu multe obiecte din clasa B și un obiect din clasa B este asociat cu multe obiecte din clasa A, este o asociere de la mulți la mulți. Un exemplu este că un angajat poate lucra la mai multe proiecte, iar un proiect poate avea mai mulți angajați.
Agregarea este o asociere de tip care descrie în continuare relația dintre obiecte. Agregarea descrie relația „are o”. Câteva exemple care descriu relația sunt: un student „are” un cod de student, un vehicul „are” un motor. De asemenea, este posibil să extindeți o cantitate mare cu relația. Câteva exemple sunt, o bancă „are multe” conturi bancare, o clasă „are mulți” studenți. Poate fi explicat folosind exemplul de mai jos.
Figura 01: Agregare
Conform exemplului de mai sus, sala de clasă este formată dintr-un elev sau mulți studenți. Multiplicitatea este, de asemenea, utilizată pentru a indica numărul de obiecte. Descrie că o clasă are mai mulți elevi. Simbolul diamantului reprezintă agregarea în UML. Obiectele studențești nu se bazează pe obiectul clasei. Dacă obiectul clasei este distrus, acesta nu va afecta obiectele elevului. Aceste obiecte vor exista în continuare.
Ce este Compoziția?
Compoziția este o formă mai specifică de agregare. Descrie proprietatea. Poate fi explicat folosind exemplul de mai jos.
Figura 02: Compoziție
Conform celor de mai sus, obiectul de carte este format din obiect sau pagini. Multiplicitatea este, de asemenea, utilizată pentru a indica numărul de obiecte. Descrie că o clasă are mai mulți elevi. Simbolul diamantului care este evidențiat reprezintă compoziția în UML. Deoarece cartea are o pagină sau mai multe pagini, este o agregare, dar este mai specificată. Dacă obiectul de carte este distrus, atunci și obiectele de pagină sunt distruse. Obiectele de pagină nu pot exista fără obiectul de carte. Prin urmare, compoziția este o formă mai specifică de agregare care implică proprietatea.
Care sunt asemănările dintre agregare și compoziție?
- Ambele sunt utilizate în programarea orientată pe obiecte.
- Ambele sunt utilizate în Unified Modeling Language (UML) pentru a obține o înțelegere vizuală a sistemului.
Care este diferența dintre agregare și compoziție?
Difuzarea articolului din mijloc înainte de tabel
Agregare vs Compoziție |
|
Agregarea este o asociere între două obiecte care descrie relația „are o” relație. | Compoziția este cel mai specific tip de agregare care implică proprietatea. |
Simbol UML | |
Agregarea este notată cu un diamant. | Compoziția este notată printr-un diamant evidențiat. |
Funcționalitate | |
În agregare, dacă obiectul proprietar este distrus, acesta nu va afecta obiectul care conține. | În compoziție, dacă obiectul proprietar este distrus, acesta va afecta obiectul care conține. |
Rezumat - Agregare vs Compoziție
Programarea orientată pe obiecte este o paradigmă majoră în dezvoltarea de software. În POO, sistemul este modelat folosind obiecte. Aceste obiecte nu există izolat. Obiectele colaborează cu alte obiecte. Relația dintre obiecte este cunoscută sub numele de asociere. Agregarea și compoziția sunt tipuri de asociere. Diferența dintre agregare și compoziție este că agregarea este o asociere între două obiecte care descrie relația „are o” relație și compoziția este tipul mai specific de agregare care implică proprietatea. Agregarea și compoziția ambele ajută la înțelegerea comportamentului sistemului.
Descărcați versiunea PDF a Agregării vs. Compoziție
Puteți descărca versiunea PDF a acestui articol și o puteți folosi în scopuri offline, conform notei de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre agregare și compoziție