Diferença entre agregação e composição em UML
Diferença chave entre agregação e composição
- Agregação é um tipo de associação entre dois objetos que descreve o relacionamento “ter um”, enquanto Composição é um tipo específico de agregação que implica propriedade.
- A agregação é indicada usando uma linha reta com uma ponta de seta vazia em uma extremidade. Por outro lado, a composição é indicada por uma linha reta com ponta de seta preenchida em qualquer uma das extremidades.
- Em um relacionamento de agregação, os objetos associados entre si podem permanecer no escopo de um sistema sem o outro. Mas em um relacionamento de composição, os objetos associados entre si não podem permanecer no escopo um sem o outro.
- Na agregação, os objetos vinculados não dependem de outro objeto, enquanto na composição, os objetos são altamente dependentes uns dos outros.
- Na agregação, a exclusão de um único elemento não afeta outro elemento associado. Pelo contrário, na composição, a eliminação de um único elemento afeta outro elemento associado.
- A agregação é indicada por um losango preenchido, enquanto um losango vazio denota composição.

O que é Agregação?
Agregação é um caso especial de associação quando um objeto 'possui' outro objeto, onde você pode ter uma agregação entre eles. A direção entre eles ajuda a especificar qual objeto contém o outro objeto. A agregação também é conhecida como relacionamento “Tem um”. É um subtipo de relacionamento de associação em UML.
O que é Composição?
A composição é um caso especial de agregação que ajuda a especificar um relacionamento todo-parte entre a classe de composição e uma classe subordinada (parte).
Diferença entre agregação e composição em UML
Aqui está a principal diferença entre agregação e composição:
| Agregação | Composição |
|---|---|
| Agregação é um tipo de associação entre dois objetos que também descreve o relacionamento “ter um”. | A composição é um tipo específico de agregação que implica propriedade. |
| A agregação é indicada usando uma linha reta com uma ponta de seta vazia em uma extremidade. | A composição é indicada por uma linha reta com uma ponta de seta preenchida em qualquer uma das extremidades. |
| A agregação faz parte de um relacionamento de associação. | A composição faz parte de uma relação de associação. |
| A agregação é considerada um tipo fraco de associação. | A composição é considerada um tipo forte de associação. |
| Em um relacionamento de agregação, os objetos associados entre si podem permanecer no escopo de um sistema sem o outro. | Em um relacionamento de composição, os objetos associados entre si não podem permanecer no escopo um sem o outro. |
| Na agregação, os objetos vinculados não dependem de outro objeto. | Na composição, os objetos são altamente dependentes uns dos outros. |
| Na agregação, a exclusão de um único elemento não afeta outro elemento associado. | Na composição, a exclusão de um único elemento afeta outro elemento associado. |
| Exemplo: Um carro precisa de uma roda, mas nem sempre exige a mesma roda. Um carro também pode funcionar adequadamente com outra roda. | Exemplo: Um arquivo é colocado dentro da pasta. Se alguém excluir a pasta, o arquivo associado a essa pasta também será excluído. |
| Na agregação, pai relacionamento com a entidade filha. |
Na composição, a entidade pai possui a entidade filha. |
| É denotado por um diamante preenchido | É denotado por um diamante vazio |
| Criança não tem vida inteira. | A criança pode ter uma vida inteira. |
| É representado por um diamante oco próximo à classe de montagem. | É representado por um losango sólido próximo à classe de montagem. |
| A exclusão da montagem nunca afeta suas peças. | No caso de possuir uma classe, o objeto é excluído. Também afeta o objeto de classe que o contém. |
Agregação vs Composição: Principais estatísticas
| Agregação | Composição | |
|---|---|---|
| Proprietário | Nenhum proprietário | Único dono |
| Lifetime | Tenha a vida deles. | Vida útil do proprietário. |
| Objeto filho | Todos os objetos filhos são independentes. | Os objetos filhos pertencem a um único pai. |
Exemplo de composição
A pasta pode conter muitos arquivos, enquanto cada arquivo possui exatamente uma pasta pai. Se uma pasta for excluída, todos os arquivos contidos também serão removidos. Em uma agregação composta, um objeto pode fazer parte de apenas um composto por vez.
Exemplo de agregação
Por exemplo, seu carro consiste em rodas, motor, caixa de câmbio, direção e carroceria principal, etc. É um conjunto e as demais partes são seus constituintes.
Aqui, carro para volante é uma agregação, carro para motor é outra agregação, carro para caixa de câmbio é outra e assim por diante.
Este tipo de emparelhamento ajuda a definir a multiplicidade da peça constituinte dentro da montagem como seu resultado. O número de objetos também pode ser representado.
Um carro precisa de uma roda para funcionar corretamente. No entanto, não podemos dizer o mesmo de um carro. A mesma lógica pode ser aplicada a bicicletas, bicicletas ou qualquer outro veículo, mas não a um carro específico.
Aqui, o objeto roda é significativo mesmo sem o objeto carro. É conhecido como relacionamento de agregação.


