Estudo na UTFPR e tenho um trabalho sobre agregação e composição para fazer.
Quanto a agregação terei que fazer sobre os temas Veiculo e Peca;
Quanto a composição será sobre Equipe e jogador.
Tanto composição quanto agregação terei que fazer com relacionamento parte para o todo; do todo para a parte.
Acontece que o professor explicou, deu exemplo mas nada muito claro.
Então gostaria da ajuda de alguém para que eu possa entender sobre agregação e composição porque olhando uma implementação não consigo distinguir muito bem uma da outra.
O que achei na net, achei somente sobre Hibernate, e nós estamos trabalhando com JDBC.
Se alguém puder me ajudar agradeço muito…
Posso expor aqui o exemplo que o professor passou se ficar melhor
Cara pra tentar de ajudar em seu problema, vou tentar te explicar, e espero que não complique mais.
Por exemplo um relacionamento entre uma escola e alunos, neste relacionamento vc terá uma agregação, pois
poderá ter varios alunos em uma escola ou varios alunos em varias escolas.
Agora um relacionamento entre departamenos de uma escola e a escola, neste vc terá uma composição,
pois vc não poderá ter um departamento sem que tenha uma escola.
Embora o conceito seja diferente, a implementação dos dois pode até mesmo ser igual.
No caso da composição, é muito comum encontrarmos a classe agregadora (carro, por exemplo) criando as instâncias da classe agregada, peça. Também é comum encontrarmos peça como uma inner class de clarro. Você também vai notar que o uso da classe peça é mais intenso pelo carro. Na verdade, parte dos métodos estarão implementados de forma que, sem uma peça, a classe carro simplesmente não funcionará. Classes compostas geralmente estão em pacotes muito próximos e correlatos.
Note que nada disso é obrigatório. A UML é um padrão que descreve os conceitos envolvendo as classes e muitos desses conceitos podem ter implementações idênticas. O que separa os relacionamentos é o grau de acoplamento da classe agregada com a agregadora, não tanto a implementação.
Não conhecia essas regras. Também não entendi a regra C.
Eu geralmente separo assim. A composição é uma relação visceral, ou seja, o objeto composto é parte praticamente física do objeto que o contém. Portanto, ele não poderá ser compatilhado (ou raramente). Também não há sentido em falar do objeto sem o seu componente (consegue imaginar um carro sem motor? Ou que tal dois carros compartilhando o mesmo motor?)
Já um jogador pode estar em duas equipes ao mesmo tempo. Uma equipe pode até ficar temporariamente sem membros, que continuará existindo conceitualmente. Falando em implementação, é provável que a classe equipe possa ser instanciada sem a presença de um único membro sequer, ser cadastrada num banco e ficar num estado de “inativa” até que os membros apareçam.
Enquanto a classe Carro provavelmente receberia um motor no construtor, ou instaciaria seu próprio motor. Ou seja, não existiria sem ele.
A relação de composição é mais forte. Se for escolher entre as duas, opte pela agregação, a menos que seja imprescindível fazer composição.
Desculpe se estou questionando d+, é que gosto de entender bem sobre um determinado assunto[/quote]
( 3- Uma Parte Só Deve Pertencer a Um Todo Naquele Momento)
Implementacao: Independente De Ser Composicao Ou Agregacao Ela É Feita Da Mesma Forma -(Conforme Te Passei Acima)
O Que Vou Te Passei E Vou Te Passar Agora Vem Com a Experiência->Ok
Respondendo À Outros Também Como O Vinícios
Logicamente Se Vc Tem Ou Nao Experirência E Vai Ler Uma Determinada Literatura Poderá Se Confundir Todo - Nenhum Único Livro Te Explica Isso Que Te Passei - “Guarde Com Carinho”
Sinônimos:
Atributo(Jargao-Em Uml)==Membro De Dados(Jargao Do C++)
Variável De Estância (Jargao Utilizado Nas Classes
Que Inicializam Objetos) == Variáveis De Classe (
Jargao Utilizado Para Variáveis Compartilhadas Para
Todos Os Objetos Criados)
Sinônimos:
Tipo Fundamental ( Generalizados À Todas Ling
Tipificadas) == Tipo Pré-Definido (Jargao Utilizado
Muito Em C) == Tipo Primitivo (Jargao Utilizado Em Java)
Desculpe retomar esta discussão, mas não é exatamente o contrário?
Estou perguntando pq estou aprendendo e eu jurava que era a composição que causa o forte acoplamento, e a agragação é quando são objetos independentes… estou errado?
Desculpe retomar esta discussão, mas não é exatamente o contrário?
Estou perguntando pq estou aprendendo e eu jurava que era a composição que causa o forte acoplamento, e a agragação é quando são objetos independentes… estou errado?[/quote]
Ops, é ao contrário sim. Vou corrigir ali em cima. Bem observado.