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.
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
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.
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.
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. |
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.
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
1. Usando agregação e composição, carreira People, 22 de maio de 2015. Disponível aqui