Aggregazione (programmazione)

Nella programmazione per computer e più precisamente nella programmazione orientata agli oggetti , l' aggregazione rende possibile definire un'entità come collegata a più entità di classe differenti. È una generalizzazione della composizione , che non implica l'adesione.

Ad esempio, un'università è composta da diverse facoltà e ciascuna facoltà è un aggregato di diversi professori. La distruzione dell'università implica la distruzione delle facoltà che la compongono, mentre la distruzione di una facoltà non implica la distruzione dei professori legati a questa facoltà da un rapporto di aggregazione. Possiamo scrivere questo esempio in C ++  :

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

Questo perché gli insegnanti vengono dichiarati come indicatori . Ci vorrebbe quindi una linea for(long i = 0;i<5;i++)delete enseignants[i]} nel distruttore di facoltà per distruggerle.

D'altra parte, le facoltà sono dichiarate come una variabile membro (e non un puntatore) e verranno quindi automaticamente distrutte quando un'istanza viene distrutta.

In UML , l'aggregazione è contrassegnata da una linea tra due classi ornata da un diamante bianco sul lato della classe aggregata.

Diagramma delle classi UML dell'esempio precedente

Vedi anche