O documento explica os diferentes tipos de agregação em programação orientada a objetos, incluindo multiplicidades de 0..1, 1, 0..N, 0..*, e 1..*. A agregação representa a relação "parte-todo" onde a parte pode existir sem o todo e é criada antes de ser vinculada ao todo.
3. Agregação
Indicada para representar um relacionamento entre “parte” e
“todo”, onde o “todo” é formado por partes:
Este relacionamento é caracterizado pela parte poder existir
sem o todo, ou seja, a parte deve existir antes que o
vínculo seja realizado;
A Parte não precisa saber a qual Todo ela está agregando.
3
4. Agregação
Para que a parte possa existir sem o todo, ela deve estar
criada antes de estar agregada ao todo;
Sua referência deve ser conhecida em outra parte do
programa, de modo que, se o todo acabar, a parte continue
podendo ser referenciada;
Ex: Um Teclado e um Computador. O Teclado pode fazer
parte de um Computador. Porém, deve existir antes de ser
ligado no Computador. Também, pode ser desligado de um
Computador para ser ligado a outro Computador. Se o
Computador for jogado fora, o Teclado pode ser
aproveitado. 4
5. Agregação
Naturalmente, a estrutura de dados utilizada, bem como o
local do vínculo dependerão da multiplicidade;
Porém, antes de se realizar a agregação da “parte” ao “todo”,
a “parte” já deve estar criada e sua referência deve ser
conhecida Ex: No método main;
O que será agregado(vinculado) ao objeto “todo” será a
referência que representa o objeto “parte”;
Deste modo, esta referência será argumento/parâmetro de
métodos e/ou construtores.
5
6. Agregação: Multiplicidade 0..1
Na multiplicidade 0..1, o “todo” pode nascer sem possuir
nenhuma parte;
Ao longo de seu ciclo de vida, uma “parte” pode agregar ao
“todo”, com o “todo” sabendo qual “parte” estará se
relacionando com ele;
É de responsabilidade do desenvolvedor prover métodos
para vínculo, substituição e/ou remoção da parte.
6
7. Agregação: Multiplicidade 0..1
Um Teclado agrega a um Computador;
O Computador pode ter 0 ou 1 Teclado;
O vínculo se dará no método instalaTeclado;
Primeiro programe as partes, depois o relacionamento;
Crie o Teclado, para depois vincular ao Computador.
7
14. Agregação: Multiplicidade 1
Na multiplicidade 1, o “todo” DEVE nascer possuindo uma
parte;
Assim sendo, neste caso, a parte deve existir antes do “todo”;
Ao longo de seu ciclo de vida, uma “parte” pode ser
substituída, mas nunca removida;
É de responsabilidade do desenvolvedor prover métodos
para substituição da parte.
14
15. Agregação: Multiplicidade 1
Um Teclado agrega a um Computador;
O Computador deve ter 1 Teclado;
O vínculo se dará no construtor;
Primeiro programe as partes, depois o relacionamento;
Crie o Teclado antes de criar o Computador.
15
20. Agregação: Multiplicidade 0..N
Na multiplicidade 0..N, o “todo” pode nascer sem possuir
nenhuma parte;
Ao longo de seu ciclo de vida, N “partes” podem agregar ao
“todo”, com o “todo” sabendo quais “partes” estarão se
relacionando com ele;
É DE RESPONSABILIDADE DO DESENVOLVEDOR A
MANUTENÇÃO DA MULTIPLICIDADE NO VETOR;
É de responsabilidade do desenvolvedor prover métodos
para vínculo, substituição e/ou remoção da parte.
20
21. Agregação: Multiplicidade 0..N
Um Teclado agrega a um Computador;
O Computador pode ter de 0 a 3 Teclados;
O vínculo se dará no método addTeclado;
Primeiro programe as partes, depois o relacionamento;
Crie o Teclado, para depois vincular ao Computador.
21
28. Agregação: Multiplicidade 0..*
Na multiplicidade 0..*, o “todo” pode nascer sem possuir
nenhuma parte;
Ao longo de seu ciclo de vida, muitas “partes” podem agregar
ao “todo”, com o “todo” sabendo quais “partes” estarão se
relacionando com ele;
É DE RESPONSABILIDADE DO DESENVOLVEDOR A
MANUTENÇÃO DA LISTA;
É de responsabilidade do desenvolvedor prover métodos
para vínculo, substituição e/ou remoção da parte.
28
29. Agregação: Multiplicidade 0..*
Um Teclado agrega a um Computador;
O Computador pode ter muitos Teclados;
O vínculo se dará no método addTeclado;
Primeiro programe as partes, depois o relacionamento;
Crie o Teclado, para depois vincular ao Computador.
29
35. Agregação: Multiplicidade 1..*
Na multiplicidade 1..*, o “todo” DEVE nascer possuindo uma
parte;
Ao longo de seu ciclo de vida, muitas “partes” podem agregar
ao “todo”, com o “todo” sabendo quais “partes” estarão se
relacionando com ele;
É DE RESPONSABILIDADE DO DESENVOLVEDOR A
MANUTENÇÃO DA LISTA;
É de responsabilidade do desenvolvedor prover métodos
para vínculo, substituição e/ou remoção da parte.
35
36. Agregação: Multiplicidade 1..*
Um Teclado agrega a um Computador;
O Computador pode ter um ou mais Teclados;
O vínculo se dará no construtor E no método addTeclado;
Primeiro programe as partes, depois o relacionamento;
Crie o Teclado, para depois vincular ao Computador.
36