Agregação x Composição:
As associações representam o equivalente mais próximo dos
relacionamentos utilizados no modelo Entidade-Relacionamento, ou seja, seu objetivo é definir a maneira como as classes estão unidas e se
relacionam entre si, compartilhando informações – (Guedes, 2006, p. 72)
:
Figura 01 – Todo-Parte
Os relacionamentos Todo-Parte acima são representado por:
Pedido (Objeto-Todo) e ItemPedido (Objeto-Parte)
Time (Objeto-Todo) e Atleta (Objeto-Parte)
Na Agregação, a existência do Objeto-Parte faz sentido, mesmo não existindo o Objeto-Todo. Vejamos o exemplo Time-Atleta:
Figura 02 – Agregação
Um time é formado por atletas, ou seja, os atletas são parte integrante de um time, mas os atletas existem independentemente de um time existir. Nesse caso, chamamos esse relacionamento de AGREGAÇÃO.
Já a Composição é uma agregação mais forte; nela, a existência do Objeto- Parte NÃO faz sentido se o Objeto-Todo não existir. Vejamos o exemplo Pedido- ItemPedido:
Figura 03 – Composição
Nesse caso, um pedido é composto por um ou vários itens, mas um produto NÃO é item de um pedido se não existe pedido. Assim, chamamos esse relacionamento de
COMPOSIÇÃO.
Conclusão
Essas são as formas de se representar o relacionamento entre os objetos das classes do tipo part-of, em que a agregação é representada por um diamante branco, sempre do lado do “Objeto-Todo”, e a composição é representada por um diamante negro, também
desenhado do lado do “Objeto-Todo”.