La programmazione orientata agli oggetti è un paradigma comune utilizzato nello sviluppo del software. L'oggetto è un'istanza di una classe creata dalle classi. Gli oggetti collaborano tra loro attraverso i collegamenti. I collegamenti sono la connessione fisica e concettuale esistente tra gli oggetti. Una raccolta di collegamenti con struttura e semantica simili è descritta come un'associazione .
Grafico comparativo
Base per il confronto | Aggregazione | Composizione |
---|---|---|
Di base | Nell'aggregazione esiste una relazione in cui un bambino può esistere indipendentemente dal genitore. | Nella composizione il non può esistere indipendentemente dal genitore. |
Tipo di relazione | "ha un" | "parte di" |
Tipo di associazione | Associazione debole | Forte associazione |
Simbolo del design UML | Rappresentato da un diamante cavo accanto alla classe di assemblaggio. | Rappresentato da un diamante solido accanto alla classe di assemblaggio. |
Funzione | La cancellazione dell'assemblaggio non influisce sulle sue parti. | Se l'oggetto classe proprietario viene eliminato, potrebbe influire in modo significativo sull'oggetto classe contenente. |
Definizione di aggregazione
L'aggregazione può essere definita come una relazione con una classe di assemblaggio alla classe costituente. La relazione tra due oggetti può essere rappresentata disegnando un segmento di linea in UML (Unified Modeling Language).
Ad esempio, un'auto è composta da ruote, motore, cambio, sterzo, corpo principale, ecc. Una macchina è un assemblaggio e le altre parti sono i suoi componenti. L'automobile alle ruote è un'aggregazione, l'auto per i motori è un'altra aggregazione e così via. Ogni singolo accoppiamento è definito per specificare la molteplicità di ciascuna parte costituente all'interno dell'assieme, in quanto il numero di oggetti può anche essere rappresentato.
L'aggregazione è un tipo di associazione che descrive un tipo di relazione "ha" tra gli oggetti. Per esempio, un'auto "ha un" cambio e un'auto "ha un" motore " . Per la relazione uno-a-molti, un esempio è un'auto "ha" molte ruote .
Definizione di Composizione
La composizione è anche un tipo di associazione ma una forma più restrittiva. È rappresentato in UML da un piccolo diamante solido adiacente alla classe di assemblaggio.
Pertanto, la composizione indica la proprietà della parte costituente del tutto. Questo alla fine aumenterebbe la convenienza per la programmazione. La composizione può attivare la cancellazione dell'oggetto costitutivo mediante la cancellazione di un oggetto assembly.
La composizione descrive una relazione "parte di" . Ad esempio, una foglia è una parte di un albero, se l'albero è distrutto, allora le foglie devono essere distrutte.
Differenze chiave tra aggregazione e composizione
- Aggregazione indica una relazione in cui le entità figlio e genitore possono esistere indipendentemente. Come contro, nella composizione, l'entità figlio dipende dal genitore.
- Nell'aggregazione esiste una relazione "ha a" mentre nella composizione esiste una relazione "parte di" tra gli oggetti della classe costituente e dell'assieme.
- L'aggregazione è un'associazione debole, mentre la composizione è un'associazione forte perché ha più vincoli.
- Nel design UML l'aggregazione è descritta da un diamante cavo. Al contrario, la composizione è raffigurata da un diamante solido.
Conclusione
In aggregazione, le parti costitutive hanno l'esistenza indipendente e possono essere condivise o riassegnate agli aggregati o al loro assemblaggio. D'altra parte, nella composizione, la parte costituente appartiene esattamente a un assemblaggio o aggregato. Inoltre, la parte viene creata quando si forma l'aggregato e la parte viene distrutta quando l'aggregato viene distrutto.