Diferença entre agregação e composição

Diferença-chave - Agregação x Composição
 

A Programação Orientada a Objetos (OOP) é ​​um paradigma comum no desenvolvimento de software. O objeto é uma instância de uma classe. Não é possível criar objetos de uma só vez. Deve haver um blueprint ou uma descrição para criar um objeto. Esse projeto é conhecido como uma classe. Uma classe contém propriedades e métodos. Objetos são criados usando classes. Classe e objeto são semelhantes a um plano e casa no mundo real. Não é possível construir uma casa sem um plano adequado. Da mesma forma, uma classe é usada para criar um objeto. Um objeto colabora com outros objetos. Um link com representa o relacionamento de dois ou mais objetos é chamado de "associação". Agregação e composição são tipos de associações. Eles descrevem o relacionamento entre as classes. Este artigo discute a diferença entre agregação e composição. o diferença chave entre agregação e composição é que agregação é uma associação entre dois objetos que descreve o relacionamento “has a” e composição é um tipo mais específico de agregação que implica propriedade.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que é agregação
3. O que é composição
4. Semelhanças entre agregação e composição
5. Comparação lado a lado - agregação versus composição em forma de tabela
6. Resumo

O que é agregação?

Um relacionamento entre dois objetos é mostrado desenhando uma linha na UML (Unified Modeling Language). O link é uma associação. A UML ajuda a obter uma representação visual do sistema. É diferente das linguagens de programação regulares. A associação também define a multiplicidade de objetos. Eles são um para um, um para muitos e muitos para muitos. Quando um único objeto da classe A é associado ao único objeto da classe B, esse é um relacionamento um para um. Um exemplo é um autor escrevendo um livro. Nesse exemplo, um autor está escrevendo um livro.

Quando um objeto da classe A é associado a muitos objetos da classe B, é um relacionamento um para muitos. Um exemplo é que um departamento pode ter muitos funcionários. Quando o objeto da classe A é associado a muitos objetos da classe B e um objeto da classe B é associado a muitos objetos da classe A, é uma associação de muitos para muitos. Um exemplo é que um funcionário pode trabalhar em vários projetos e um projeto pode ter vários funcionários.

Agregação é uma associação de tipo que descreve melhor o relacionamento entre objetos. A agregação descreve o relacionamento "tem um". Alguns exemplos que descrevem o relacionamento são: um aluno "tem um" ID de estudante, um veículo "tem um" mecanismo. Também é possível expandir uma grande quantidade com o relacionamento. Alguns exemplos são: um banco "tem muitas" contas bancárias, uma turma "tem muitos" alunos. Isso pode ser explicado usando o exemplo abaixo.

Figura 01: Agregação

De acordo com o exemplo acima, a sala de aula é composta por um aluno ou muitos alunos. A multiplicidade também é usada para indicar o número de objetos. Ele descreve que uma sala de aula tem vários alunos. O símbolo do diamante representa a agregação na UML. Os objetos do aluno não dependem do objeto da classe. Se o objeto da turma for destruído, ele não afetará os objetos do aluno. Esses objetos ainda existirão.

O que é composição?

A composição é uma forma mais específica de agregação. Descreve a propriedade. Isso pode ser explicado usando o exemplo abaixo.

Figura 02: Composição

De acordo com o acima, o objeto de livro consiste em objeto de página ou páginas. A multiplicidade também é usada para indicar o número de objetos. Ele descreve que uma sala de aula tem vários alunos. O símbolo do diamante destacado representa a composição na UML. Como o livro tem uma página ou várias páginas, é uma agregação, mas é mais especificado. Se o objeto do livro for destruído, os objetos da página também serão destruídos. Objetos de página não podem existir sem o objeto de livro. Portanto, a composição é uma forma mais específica de agregação que implica propriedade.

Quais são as semelhanças entre agregação e composição?

  • Ambos são usados ​​na programação orientada a objetos.
  • Ambos são usados ​​na UML (Unified Modeling Language) para obter uma compreensão visual do sistema.

Qual é a diferença entre agregação e composição?

Agregação vs Composição

Agregação é uma associação entre dois objetos que descreve o relacionamento "tem um". A composição é o tipo mais específico de agregação que implica propriedade.
 Símbolo UML
A agregação é denotada por um diamante. Composição é indicada por um diamante destacado.
Funcionalidade
Em agregação, se o objeto proprietário for destruído, ele não afetará o objeto que o contém. Na composição, se o objeto proprietário for destruído, ele afetará o objeto que o contém.

Sumário - Agregação vs Composição 

A Programação Orientada a Objetos é um paradigma importante no desenvolvimento de software. No OOP, o sistema é modelado usando objetos. Esses objetos não existem isoladamente. Objetos colaboram com outros objetos. O relacionamento entre objetos é conhecido como associação. Agregação e composição são tipos de associação. A diferença entre agregação e composição é que a agregação é uma associação entre dois objetos que descreve o relacionamento "has a" e a composição é o tipo mais específico de agregação que implica propriedade. A agregação e a composição ajudam a entender o comportamento do sistema.

Faça o download da versão em PDF de agregação versus composição

Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre agregação e composição

Referência:

1. Usando agregação e composição, carreira People, 22 de maio de 2015. Disponível aqui