Agregare (programare)

În programarea computerizată și mai precis în programarea orientată obiect , agregarea face posibilă definirea unei entități ca fiind legată de mai multe entități de clasă diferite. Este o generalizare a compoziției , care nu implică apartenență.

De exemplu, o universitate este formată din mai multe facultăți și fiecare facultate este un agregat de mai mulți profesori. Distrugerea universității implică distrugerea facultăților care o compun, în timp ce distrugerea unei facultăți nu implică distrugerea profesorilor legați de această facultate printr-o relație de agregare. Putem scrie acest exemplu în C ++  :

class Professeur; class Departement { ... private: // Agrégation Professeur* enseignants[5]; ... }; class Universite { ... private: // Composition Departement facultes[20]; ... };

Acest lucru se datorează faptului că profesorii sunt declarați ca indicatori . Ar fi nevoie de o linie for(long i = 0;i<5;i++)delete enseignants[i]} în distrugătorul facultăților pentru a le distruge.

Pe de altă parte, facultățile sunt declarate ca o variabilă membru (și nu un pointer) și, prin urmare, vor fi distruse automat atunci când o instanță este distrusă.

În UML , agregarea este notată printr-o linie între două clase împodobite cu un diamant alb pe partea clasei agregate.

Diagrama clasei UML din exemplul anterior

Vezi și tu