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

Índice:

Anonim

o principal diferença entre agregação e composição é que agregação é uma associação entre dois objetos que têm o relacionamento “tem um”, enquanto a composição é um tipo especial de agregação que descreve a propriedade.

A Programação Orientada a Objetos (OOP) é ​​um paradigma importante na engenharia de software. De acordo com o OOP, os objetos se comunicam entre si. Uma classe é um projeto para criar objetos, enquanto uma associação é uma conexão entre dois ou mais objetos. Agregação e composição são dois tipos de associação que descrevem os relacionamentos entre objetos ou classes.

Agregação, Composição, OOP, UML

O que é agregação

Agregação é uma associação que descreve o relacionamento “tem um” entre os objetos. Por exemplo, uma sala de aula e um aluno estão vinculados ao relacionamento “tem um”.

Figura 1: Diagrama UML com agregação

Ao considerar a sala de aula acima e o cenário do aluno, o objeto do aluno não depende do objeto da sala de aula. Além disso, destruir a sala de aula não afeta ou destrói o objeto do aluno. Portanto, a associação entre sala de aula e aluno é uma agregação. Além disso, a Unified Modeling Language (UML) é uma linguagem de modelagem visual que ajuda a desenvolver sistemas de software. Na UML, o símbolo do diamante representa a agregação.

O que é composição

A composição é um tipo especial de agregação que descreve a propriedade. Um exemplo é o seguinte.

Figura 2: Composição no diagrama UML

No diagrama acima, o objeto Escola contém objetos de sala de aula. Como o objeto escola contém objetos de sala de aula, é uma agregação, mas é um tipo especial de agregação. Se destruirmos o objeto da escola, o objeto da sala de aula também será destruído. Portanto, é uma composição e implica propriedade. Em UML, o símbolo do diamante destacado representa a composição.

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

Definição

Agregação é uma associação entre dois objetos que descreve o relacionamento “tem um”, enquanto a composição é o tipo mais específico de agregação que implica propriedade. Portanto, esta é a principal diferença entre agregação e composição.

Funcionalidade

Na agregação, destruir o objeto proprietário não afeta o objeto que o contém. No entanto, na composição, destruir o objeto que possui afeta o objeto que o contém. Portanto, esta é outra diferença entre agregação e composição.

Representação UML

Além disso, o símbolo do diamante representa a agregação na UML, enquanto o símbolo do diamante destacado representa a composição na UML.

Conclusão

Em OOP, os objetos se comunicam entre si. Aqui, a relação entre objetos é uma associação. Agregação e composição são dois tipos de associações entre objetos ou classes. A diferença entre agregação e composição é que a agregação é uma associação entre dois objetos que têm o relacionamento “tem um”, enquanto a composição é um tipo especial de agregação que descreve a propriedade.

Referência:

1. 6 5 Using Aggregation and Composition, People Career, 22 de maio de 2015, disponível aqui.

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