Key Difference – Agregação vs Composição em Java
Agregação é uma associação entre dois objetos que descreve o relacionamento “tem-a”. 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, é uma agregação, e se o objeto contido não pode existir sem a existência do objeto proprietário, é uma composição.
Programação Orientada a Objetos (POO) é um paradigma importante no desenvolvimento de software. Ele é 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 através da passagem de mensagens. A relação entre dois objetos é conhecida como associação. Tanto a agregação quanto a composição são dois tipos de associação. A relação “tem-a” descreve que um objeto pode usar outro objeto. Agregação e 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.
O que é Agregação em Java?
Agregação é um tipo de associação. Se uma classe tem uma referência de entidade, ela é conhecida como agregação. A agregação representa o relacionamento tem-um. Um objeto Student pode ter propriedades como student_id, name, address. Este objeto também pode ter outro objeto chamado endereço com suas próprias informações como cidade, estado, país. Nesta situação, o Aluno tem um endereço de referência de entidade. É um relacionamento “tem-um”.
Figura 01: Classe de Marcas
Figura 02: Programa Principal para descrever Agregação
De acordo com o programa acima, a classe Marks consiste em três propriedades que são Maths, English e Sciences. O Aluno tem um objeto de Marcas. Tem suas próprias propriedades que são marcas de matemática, inglês e ciências. No método principal, um objeto de Marcas é criado e os valores das marcas são atribuídos. O objeto aluno que é s1 pode usar o objeto de marcas que é m1. Portanto, o Aluno e as Notas têm a relação “tem-a”. 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 pode existir se o objeto da classe A for destruído, então isso é uma composição. Um livro é composto por 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: Aula em sala de aula
Figura 04: Turma Escolar
Figura 05: Programa Principal para descrever a Composição
De acordo com o programa acima, o Classroom tem duas propriedades que são name e numOfStudents. A Escola é uma coleção de objetos do Classroom. No método main, são criados dois objetos Classroom. 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 pela iteração 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-a' 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. Composição é um subconjunto de Agregação
Qual é a diferença entre agregação e composição em Java?
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 | |
Agregação é usada quando um objeto usa outro objeto. | Composition é usado quando um objeto possui outro objeto. |
Afetar Objetos | |
Na agregação, destruir o objeto proprietário não afetará o objeto que o contém. | Na composição, destruir o objeto proprietário 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 POO. A relação “tem-a” descreve que um objeto pode usar outro objeto. A agregação é uma associação entre dois objetos que descreve o relacionamento “tem-a”. A 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, é uma agregação e se o objeto contido não pode existir sem a existência do objeto proprietário, é uma composição.