Diferencie Associação, Agregação e Composição de objetos.
Passo 1
Vamos entender o que a pergunta está pedindo. Precisamos diferenciar três tipos de relações entre objetos: Associação, Agregação e Composição. Essas são maneiras de representar como as classes ou objetos interagem e se relacionam em programação orientada a objetos ou em diagramas UML. Para resolver isso, vamos ver o que cada termo significa e como eles se diferenciam.
Passo 2
Associação é a relação mais básica entre objetos. Imagine que você tem duas classes, como
Aluno
e Curso
. Uma associação pode indicar que um aluno está inscrito em um curso. Essa relação é bidirecional ou unidirecional, dependendo de como você a define. Não há dependência de vida entre os objetos; ou seja, se um objeto for destruído, o outro continua existindo normalmente.Passo 3
Agregação é uma forma mais especializada de associação. Ela representa uma relação “todo-parte”, onde uma classe (o todo) é composta por outras classes (as partes). Por exemplo, uma classe
Departamento
pode agregar várias instâncias da classe Professor
. A diferença chave aqui é que as partes podem existir independentemente do todo. Se o departamento for removido, os professores ainda existem.Passo 4
Composição é uma forma ainda mais forte de agregação. Também representa uma relação “todo-parte”, mas com uma dependência mais rígida. No caso da composição, se o todo for destruído, as partes também são automaticamente destruídas. Por exemplo, uma classe
Casa
pode ter uma classe Sala
. Se a casa for demolida, as salas também deixam de existir.Resposta
Resumindo:
- Associação é uma relação geral entre objetos, sem dependência de existência.
- Agregação é uma relação “todo-parte” onde as partes podem existir independentemente do todo.
- Composição é uma relação “todo-parte” mais rígida, onde as partes dependem completamente do todo para sua existência.