Logo pt.removalsclassifieds.com

Diferença entre agregação e composição (com tabela)

Índice:

Anonim

Em linguagens de programação, designs de sistema operacional e sistemas de gerenciamento de banco de dados, diferentes objetos e classes são armazenados com uma associação entre os objetos. Tanto a agregação quanto a composição são usadas para descrever essa relação entre os objetos para armazenar e recuperar os conjuntos de dados de forma mais eficiente, reduzindo as complexidades de tempo e espaço.

Agregação vs Composição

A principal diferença entre agregação e composição é que agregação descreve a associação entre os objetos que dependem uns dos outros para sua criação. Já a Composição descreve os objetos que dependem diretamente uns dos outros para sua criação e função. Nesse caso, um objeto tem propriedade sobre o outro.

A agregação é uma associação entre dois conjuntos de dados, como classes ou objetos, onde os objetos envolvidos não têm uma dependência direta um do outro para sua criação ou função. Assim, a manipulação de um objeto não altera o status do outro objeto. Esta associação permite que as alterações sejam feitas sem perdas.

Composição é um tipo especial de agregação e descreve o relacionamento entre dois conjuntos de dados, em que os objetos ou classes envolvidos são diretamente dependentes um do outro para sua criação, armazenamento, função e assim por diante. Portanto, qualquer modificação em um dos conjuntos de dados impacta diretamente o outro conjunto de dados.

Tabela de comparação entre agregação e composição

Parâmetros de comparação

Agregação

Composição

Definição A agregação é um tipo de associação sem a dependência dos objetos uns dos outros Composição é uma associação com a dependência dos objetos uns dos outros
Relação Existe uma relação indireta entre os conjuntos de dados A relação pai-filho entre os conjuntos de dados
Símbolo UML A agregação é denotada com um diamante vazio A composição é denotada por um diamante preenchido
Modificação A modificação de um objeto não altera o outro objeto A modificação de um objeto altera os dados do outro objeto
Força de associação É uma associação fraca É uma associação forte

O que é agregação?

Agregação é um tipo de associação ou relacionamento entre dois conjuntos de dados, como classes, objetos e assim por diante. A associação é feita para agrupar os conjuntos de dados que possuem semelhanças.

Nesse tipo de associação, os objetos ou classes não têm uma relação direta. Os conjuntos de dados têm uma relação “Has-A”.

Isso implica que os conjuntos de dados não dependem uns dos outros para sua criação, armazenamento ou qualquer função ou operação. Este é o principal benefício de usar essa forma de associação para armazenar conjuntos de dados semelhantes.

Como os objetos e classes não têm dependência direta uns dos outros, qualquer modificação ou alteração feita em um dos objetos ou classes não altera ou modifica o conteúdo dos dados armazenados no outro dataset.

Isso torna possível destruir um dos conjuntos de dados na agregação sem ter que se preocupar com os dados armazenados no outro conjunto de dados.

Por causa dessa propriedade do relacionamento de agregação, ela é usada principalmente em ambientes de teste em que os dados precisam ser modificados constantemente. Devido ao relacionamento “Has-A” entre os objetos agregados, os dados não são destruídos nos outros conjuntos de dados.

Para representação UML, um símbolo de diamante vazio é usado para especificar o relacionamento de agregação.

O que é composição?

Composição é um tipo de relacionamento entre conjuntos de dados e é usado principalmente em sistemas de gerenciamento de banco de dados e no projeto de sistemas operacionais. Os conjuntos de dados podem incluir objetos, classes e assim por diante.

A composição cria um relacionamento entre os conjuntos de dados que é mais direto do que a agregação. Assim, os objetos e classes estão diretamente relacionados uns com os outros durante a criação dos conjuntos de dados.

Como os objetos e classes estão diretamente relacionados, eles dependem uns dos outros para sua criação, armazenamento e qualquer operação ou função.

O relacionamento às vezes é representado como um relacionamento “pai-filho” ou relacionamento “proprietário”, em que um conjunto de dados é o proprietário do outro.

A principal desvantagem de usar este tipo de relacionamento é que quando um dos objetos ou classes é alterado ou modificado, a mudança é refletida no outro conjunto de dados e os dados contidos no conjunto de dados também são modificados.

Isso deve ser observado ao trabalhar com tais conjuntos de dados, como se um dos conjuntos de dados fosse destruído ou excluído, o outro conjunto de dados associado a esse conjunto de dados também seria destruído.

Mas os dados são armazenados com mais segurança ao usar uma relação de composição entre os objetos ou classes. Para representação UML de uma associação de tipo de composição, um losango preenchido é usado.

Principais diferenças entre agregação e composição

Conclusão

Os conjuntos de dados são necessários para armazenar dados com mais eficiência quando há alguma semelhança entre os dados envolvidos. Assim, ao criar sistemas de gerenciamento de banco de dados, diferentes tipos de associações de conjuntos de dados são feitos para refletir o relacionamento entre os conjuntos de dados.

Tanto a agregação quanto a composição são tipos de associações que refletem a relação entre os dados envolvidos.

A agregação não é uma relação direta e os dados envolvidos neste tipo de associação não dependem uns dos outros para sua criação e função.

Composição é um tipo direto de associação e a relação entre os dados envolvidos é às vezes representada como uma representação “Pai-Filho”.

Portanto, Composição é uma associação mais forte do que Agregação, mas a dependência dos conjuntos de dados deve ser observada ao trabalhar com esse tipo de associação.

Referências

Diferença entre agregação e composição (com tabela)