Diferença chave - agregação vs composição em Java
A 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. A principal diferença entre agregação e composição em Java é que, se o objeto contido pode existir sem a existência do objeto proprietário, ele é uma agregação e se o objeto contido não pode existir sem a existência do objeto proprietário, é uma composição.
A Programação Orientada a Objetos (OOP) é um paradigma importante no desenvolvimento de software. É usado para modelar o software usando objetos. Os objetos são criados usando classes. Uma classe consiste em propriedades e métodos. Existem vários objetos no software. Cada objeto colabora entre si por meio da passagem de mensagens. O relacionamento entre dois objetos é conhecido como associação. Tanto a agregação quanto a composição são dois tipos de associação. O relacionamento “tem um” descreve que um objeto pode usar outro objeto. A agregação e a composição podem ser implementadas em linguagens de suporte OOP. Se o objeto contido pode existir sem a existência do objeto proprietário, a associação entre esses dois objetos é uma agregação. Se o objeto contido não pode existir sem a existência do objeto proprietário,então a associação entre esses dois objetos é uma composição.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é agregação em Java
3. O que é composição em Java
4. Semelhanças entre agregação e composição em Java
5. Comparação lado a lado - Agregação versus composição em Java na forma tabular
6. Resumo
O que é agregação em Java?
A agregação é um tipo de associação. Se uma classe tiver uma referência de entidade, isso é conhecido como agregação. A agregação representa o relacionamento tem-um. Um objeto Aluno pode ter propriedades como student_id, nome, endereço. Este objeto também pode ter outro objeto denominado endereço com suas próprias informações como cidade, estado, país. Nesta situação, o Aluno possui um endereço de referência da entidade. É um relacionamento “tem um”.
Figura 01: Classe de Marcas
Figura 02: Programa principal para descrever a agregação
De acordo com o programa acima, a classe Marcas consiste em três propriedades que são Matemática, Inglês e Ciências. O Aluno tem um objeto de Marcas. Tem propriedades próprias que são marcas da matemática, do inglês e das ciências. No método principal, um objeto de Marcas é criado e os valores das marcas são atribuídos. O objeto de aluno que é s1 pode usar o objeto de marcas que é m1. Portanto, o Aluno e as Marcas têm a relação “tem um”. O objeto Marks pode existir sem o objeto Student. Portanto, é uma agregação.
O que é composição em Java?
Composição é um tipo de associação. É uma forma específica de agregação que implica propriedade. Suponha que existam duas classes chamadas classe A e B. Se o objeto da classe B não puder existir se o objeto da classe A for destruído, então isso é uma composição. Um livro consiste em muitas páginas. Se o livro for destruído, as páginas também serão destruídas. Os objetos de página não podem existir sem o objeto de livro. Consulte o programa abaixo.
Figura 03: Sala de aula
Figura 04: Classe Escolar
Figura 05: Programa principal para descrever a composição
De acordo com o programa acima, a Sala de Aula tem duas propriedades que são nome e numOfStudents. A escola é uma coleção de objetos de sala de aula. No método principal, dois objetos Classroom são criados. Esses são adicionados às 'salas de aula'. Essas 'salas de aula' são passadas para o objeto escolar. Finalmente, o nome da sala de aula e o número de alunos são impressos iterando pela coleção. Se o objeto Escola for destruído, os objetos Sala de aula também serão destruídos. Este é um exemplo de composição. Ele também contém o relacionamento 'tem um' e também implica propriedade.
Qual é a relação entre agregação e composição em Java?
Agregação e Composição são dois tipos de Associação e Composição é um tipo especializado de Agregação. A composição é um subconjunto da agregação
Qual é a diferença entre agregação e composição em Java?
Artigo Diff meio antes da tabela
Agregação vs composição em Java |
|
Agregação é uma associação entre dois objetos que descreve o relacionamento “tem um”. | Composição é um tipo mais específico de agregação que implica propriedade. |
Uso | |
A agregação é usada quando um objeto usa outro objeto. | A composição é usada quando um objeto possui outro objeto. |
Afeto em objetos | |
Na agregação, destruir o objeto proprietário não afetará o objeto que o contém. | Na composição, destruir o objeto que o possui afetará o objeto que o contém. |
Resumo - Agregação vs. Composição em Java
Agregação e composição são dois conceitos em OOP. O relacionamento “tem um” descreve que um objeto pode usar outro objeto. A agregação é uma associação entre dois objetos que descreve o relacionamento "tem um". Composição é um tipo mais específico de agregação que implica propriedade. A diferença entre agregação e composição em Java é que, se o objeto contido pode existir sem a existência do objeto proprietário, ele é uma agregação e se o objeto contido não pode existir sem a existência do objeto proprietário, é uma composição.