Diferența cheie – agregare vs compoziție în Java
Agregarea este o asociere între două obiecte care descrie relația „are-a”. Compoziția este tipul mai specific de agregare care implică proprietate. Diferența cheie dintre agregare și compoziție în Java este că, dacă obiectul conținut poate exista fără existența obiectului proprietar, este o agregare, iar dacă obiectul conținut nu poate exista fără existența obiectului proprietar, este o compoziție..
Programarea orientată pe obiecte (OOP) este o paradigmă majoră în dezvoltarea de software. Este folosit pentru a modela software-ul folosind obiecte. Obiectele sunt create folosind clase. O clasă este formată din proprietăți și metode. Există mai multe obiecte în software. Fiecare obiect colaborează unul cu celăl alt prin transmiterea mesajelor. Relația dintre două obiecte este cunoscută ca o asociere. Atât agregarea, cât și compoziția sunt două tipuri de asociere. Relația „are-a” descrie faptul că un obiect poate folosi un alt obiect. Agregarea și compoziția pot fi implementate în limbaje care acceptă POO. Dacă obiectul conținut poate exista fără existența obiectului proprietar, atunci asocierea dintre aceste două obiecte este o agregare. Dacă obiectul conținut nu poate exista fără existența obiectului proprietar, atunci asocierea dintre aceste două obiecte este o compoziție.
Ce este agregarea în Java?
Agregarea este un tip de asociere. Dacă o clasă are o referință la entitate, aceasta este cunoscută sub numele de agregare. Agregarea reprezintă relația are-o. Un obiect Student poate avea proprietăți precum student_id, nume, adresă. Acest obiect poate avea și un alt obiect numit adresă cu informații proprii, cum ar fi oraș, stat, țară. În această situație, Studentul are o adresă de referință a entității. Este o relație „are-o”.
Figura 01: Clasa Note
Figura 02: Programul principal pentru a descrie agregarea
Conform programului de mai sus, notele de clasă constau din trei proprietăți care sunt note de matematică, engleză și știință. Studentul are un obiect de note. Are propriile sale proprietăți care sunt semne de matematică, engleză și știință. În metoda principală, se creează un obiect al mărcilor și se atribuie valori ale mărcilor. Obiectul student care este s1 poate folosi obiectul marks care este m1. Prin urmare, Studentul și Notele au relația „are-a”. Obiectul Marks poate exista fără obiectul Student. Prin urmare, este o agregare.
Ce este compoziția în Java?
Compoziția este un tip de asociere. Este o formă specifică de agregare care implică proprietate. Să presupunem că există două clase numite clasa A și B. Dacă obiectul clasei B nu poate exista dacă obiectul clasei A este distrus, atunci aceasta este o compoziție. O carte este formată din multe pagini. Dacă cartea este distrusă, paginile se vor distruge și ele. Obiectele pagină nu pot exista fără obiectul carte. Consultați programul de mai jos.
Figura 03: Classroom Class
Figura 04: Clasa de școală
Figura 05: Programul principal pentru a descrie compoziția
Conform programului de mai sus, Classroom are două proprietăți care sunt name și numOfStudents. Școala este o colecție de obiecte din clasă. În metoda principală, sunt create două obiecte Classroom. Acestea sunt adăugate la „săli de clasă”. Aceste „săli de clasă” sunt transmise obiectului școlar. În cele din urmă, numele clasei și numărul de elevi sunt tipărite prin iterarea colecției. Dacă obiectul Școală este distrus, obiectele Classroom vor fi și ele distruse. Acesta este un exemplu de compoziție. De asemenea, conține relația „are-a” și implică, de asemenea, dreptul de proprietate.
Care este relația dintre agregare și compoziție în Java?
Agregarea și Compoziția sunt două tipuri de Asociere, iar Compoziția este un tip specializat de Agregare. Compoziția este un subset al agregarii
Care este diferența dintre agregare și compoziție în Java?
Agregare vs compunere în Java |
|
Agregarea este o asociere între două obiecte care descrie relația „are o”. | Compoziția este un tip mai specific de agregare care implică proprietate. |
Utilizare | |
Agregarea este folosită atunci când un obiect folosește un alt obiect. | Compoziția este folosită atunci când un obiect deține alt obiect. |
Afect asupra obiectelor | |
În agregare, distrugerea obiectului proprietar nu va afecta obiectul care îl conține. | În compoziție, distrugerea obiectului proprietar va afecta obiectul care îl conține. |
Rezumat – agregare vs compunere în Java
Agregarea și Compoziția sunt două concepte în POO. Relația „are-a” descrie faptul că un obiect poate folosi un alt obiect. Agregarea este o asociere între două obiecte care descrie relația „are-un”. Compoziția este un tip mai specific de agregare care implică proprietate. Diferența dintre agregare și compoziție în Java este că, dacă obiectul conținut poate exista fără existența obiectului proprietar, este o agregare și dacă obiectul conținut nu poate exista fără existența obiectului proprietar, este o compoziție.