Ao implementarmos qual a diferença na prática entre agregação e composição ?
Eu sei quando se usa cada um na teoria, mas quando vou implementar como faço ?
Sei que composição e agração têm relacionamento todo-parte, porém diferenciam-se por um ser parte essencial e outro não. Mas em código java qual a diferença ?
Favor exemplificar com código… grato !
Opa… vamos ver c eu consigo te ajudar…
Bem. vamos pensar em um Objeto Pessoa(acho q e + usado por todos rsr)
Essa pessoa tem um trabalho, e essa pessoa tem um objeto coracao, sao coisas diferentes, mas e so pra exemplo…
O objeto coracao tem os atributos… arterias, vasos, etc…
Mas… a pessoa vive sem um coracao ? entao temos um objeto composto, certo?
E essa pessoa tem um trabalho com os atributos… localizacao, cnpj, etc… ou seja… vc n vive sem o seu trabalho, mas ele nao deixa de existir… entao temos para a relacao pessoa-coracao, temos uma composicao, e para pessoa-trabalho temos uma agregacao, ok ? agora vamos pra o codigo…
[code]public class Pessoa
private String nome;
private Double salario;
private Coracao coracao;
private Trabalho trabalho;
//… get’s e set’s[/code]
[code]public class Coracao
private Integer vasos;
private Integer arterias;
private Pessoa pessoa[/code]
public class Trabalho
private Integer cnpj;
private String localizacao;
private Pessoa pessoa
OK? espero ter ajudado!
Olá Rafael ! Muito obrigado cara !
Valeu mesmo…mas tive algumas dúvudas…
- A classe trabalho e a classe coração são idêndicas, só muda o nome da classe e dos atributos…
2))A classe pessoa assim declara as duas classes supracitadas (coração e trabalho)
private Coracao coracao;
private Trabalho trabalho;
Ou seja idêndicamente…
Conclusão: Agregação e composição não se diferenciam quanto ao código ?..
Muitíssimo obrigado por sua observação.
Desculpem da pergunta, mas porque é presciso colocar um objeto Pessoa na classe Coracao e na Trabalho, a referências das mesmas na classe Pessoa não basta para eu trabalhar com essas classes???
Repondendo a primeira pergunta…
No código não muda nada a parte de programação, mas precisamos ter sempre especificado no class diagram, pra vc ter uma ideia conseitual da agrecação da uma olhada AQUI, que vai esta a parte conseitual, mas basicamente falando…
[quote]Agregação é quanto você fala de um objeto que compoem outro
[/quote]
E sobre a segunda pergunta… estava somente sitando um exemplo pra o irmão da pergunta acima, como disse, foi um exemplo pra destacar a diferença, ok ?