Estou ciente das diferenças conceituais entre agregação e composição. Alguém pode me dizer a diferença de implementação em Java entre eles com exemplos?
java
relationship
aggregation
composition
Rajath
fonte
fonte
Respostas:
Composição
Agregação
No caso da composição, o Motor é totalmente encapsulado pelo Carro. Não há como o mundo externo obter uma referência para o Motor. O motor vive e morre com o carro. Com a agregação, o Carro também desempenha suas funções por meio de um Motor, mas o Motor nem sempre é uma parte interna do Carro. Os motores podem ser trocados ou mesmo completamente removidos. Não apenas isso, mas o mundo exterior ainda pode ter uma referência ao Motor e mexer nele, independentemente de estar no Carro.
fonte
new Engine(EngineSpecs)
chamada, mesmo que não haja carro. A maneira de obter composição é criar Motor como uma classe interna, de modo que um objeto de motor seja sempre criado com referência a um Objeto de carroEu usaria um bom exemplo de UML.
Pegue uma universidade que tenha de 1 a 20 departamentos diferentes e cada departamento tenha de 1 a 5 professores. Existe um vínculo de composição entre uma Universidade e seus departamentos. Existe um vínculo de agregação entre um departamento e seus professores.
A composição é apenas uma agregação FORTE; se a universidade for destruída, os departamentos também deverão ser destruídos. Mas não devemos matar os professores mesmo que seus respectivos departamentos desapareçam.
Em java:
Algo em torno disso.
fonte
Há uma grande explicação no url fornecido abaixo.
http://www.codeproject.com/Articles/330447/Understanding-Association-Aggregation-and-Composit
Por favor, verifique!!!
fonte
A diferença é que qualquer composição é uma agregação e não vice-versa.
Vamos definir os termos. A agregação é um metatermo no padrão UML e significa AMBOS a composição e a agregação compartilhada, simplesmente denominada compartilhada . Muitas vezes, é denominado incorretamente como "agregação". É RUIM, pois a composição também é uma agregação. Pelo que entendi, você quer dizer "compartilhado".
Mais além do padrão UML:
Então, a associação Universidade para cátedras é uma composição, porque cátedra não existe fora da universidade (IMHO)
Ou seja, todas as outras associações podem ser desenhadas como agregações compartilhadas, se você estiver apenas seguindo alguns princípios seus ou de outra pessoa. Veja também aqui .
fonte
Em termos simples :
Tanto a composição quanto a agregação são associações. Composição -> Relacionamento Has-A forte Agregação -> Relacionamento Has-A fraco.
fonte
Um programa de composição simples
fonte
Primeiro, devemos falar sobre qual realmente é a diferença entre
Aggregation
eComposition
estar na mesma página.enquanto que
Agora, a agregação pode simplesmente ser alcançada mantendo uma propriedade de uma entidade em outra como abaixo:
Para Composição é necessário que o objeto dependente seja sempre criado com a identidade de seu objeto associado. Você pode usar uma classe interna para o mesmo.
fonte
Agregação vs Composição
A agregação implica um relacionamento em que o filho pode existir independentemente do pai. Por exemplo, Banco e Funcionário, exclua o Banco e o Funcionário ainda existe.
ao passo que Composição implica um relacionamento em que o filho não pode existir independente do pai. Exemplo: Humano e coração, coração não existem separados de um Humano.
A relação de agregação é "tem um" e a composição é uma relação "parte de".
A composição é uma associação forte, enquanto a agregação é uma associação fraca.
fonte
Ambos os tipos são associações de curso, e não são realmente mapeados estritamente para elementos de linguagem como esse. A diferença está no propósito, contexto e como o sistema é modelado.
Como um exemplo prático, compare dois tipos diferentes de sistemas com entidades semelhantes:
Um sistema de registro de automóveis que principalmente rastreia os carros e seus proprietários, etc. Aqui, não estamos interessados no motor como uma entidade separada, mas ainda podemos ter atributos relacionados ao motor, como potência e tipo de combustível. Aqui, o Motor pode ser uma parte composta da entidade carro.
Um sistema de gerenciamento de oficina automotiva que gerencia as peças do carro, faz a manutenção e troca de peças, talvez motores completos. Aqui podemos até ter motores estocados e precisarmos controlá-los e outras peças separadamente e independentemente dos carros. Aqui, o Motor pode ser uma parte agregada da entidade automóvel.
Como você implementa isso em sua linguagem é uma preocupação secundária, já que, nesse nível, coisas como a legibilidade são muito mais importantes.
fonte