Nosso objetivo aqui é tentar ajudar a esclarecer a diferença dessas formas utilizando um exemplo prático.
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)
Vejamos dois relacionamentos para entender melhor as nomenclaturas:
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".
- Bibliografia:
Fora de tópico Mostrar Código Esconder Código Mostrar EmoticonEsconder Emoticon