Não é não, valter. Associação e agregação são ambos relacionamentos de
classes. Em java, você implementa como uma referência de um objeto ao outro.
Exemplo:
/* modelo do banco de dados */
class Table
{
private Row rows[]; /* agregação "tem" */
}
class Row
{
private Table table
}
/* modelo escola */
class Professor
{
private Aluno alunos[]; /* associação leciona */
}
class Aluno
{
private Professor professores[];
}
A implementação dos dois casos é idêntica, mas o primeiro é uma agregação e
o segundo é uma associação.
A diferênça está no tipo da entidade relacionada. Na agregação você se
relaciona com uma entidade fraca, que têm a existência dela dependente a
outra. Grosso modo onde há na descrição o verbo ter, há uma agregação. No
exemplo: "Tabela tem linhas".
A associação relaciona com entidades fortes, de existência independente a
outras entidades. Um professor e um aluno existem independentemente, apenas
se associam. O professor leciona aluno. Logo, o professor tem uma associação
lecionar com aluno.
Sacou? As diferenças na implementação são pequenas. Todas espelham essas
diferenças de comportamento que eu descrevi acima.
abraços
Jorge
-----Original Message-----
From: valter vieira de camargo [mailto:[EMAIL PROTECTED]]
Sent: quarta-feira, 14 de março de 2001 19:10
To: [EMAIL PROTECTED]
Subject: Re: RES: [java-list] Para Alexandre: implementação de
agregações e associações
Sobre as associações e agregações eu estou achando que é realmente isto:
agregação - atributo do tipo de outra classe
associação - instanciação de uma classe dentro de algum método de outra...
Quanto à abordagem do Furlan... será que se modelarmos um sistema
completamente
OO sem a preocupação com chaves, etc.... a dificuldade na implementação será
muito acentuada, você não acha ? Eu estou desenvolvendo um projeto de
mestrado e
quero fazer da maneira certa entende ? A minha outra preocupação é quanto ao
projeto ..... no modelo de classes de análise tudo bem ... mas o meu modelo
de
classes de projeto tem que ter alguma coisa relacional....
Alexandre Rodrigues Gomes wrote:
> Valter,
>
> na implementação acho que poderíamos resumir na seguinte forma:
> para agregar, utilizaremos atributos de instância, ou seja,
> "variáveis globais" e para associação podemos criar apenas
> variáveis locais de métodos. Será que é plausível esta abordagem ?
> Se bem que podemos ter atributos de classe que não são verdadeiras
> agregações mas apenas realizam papel associativo. Acho que
> isto é bem conceitual mesmo. O pessoal da lista podia dar
> uma forcinha.....
>
> Quanto àquela abordagem do Furlan, eu questiono um pouco.
> Ora, temos hoje que o que se busca é a independência da fonte
> de dados. Devemos abstrair a forma com que a base de informações
> será implementada, nos deter apenas numa interface pré-definida
> e deixar as questões peculiares de cada banco com uma camada
> de software que realize o mapeamento OO/Relacional. Amarrar
> o seu modelo de negócios numa solução única de backend é
> limitar seu processo de desenvolvimento à não escalabilidade
> e evolução.
>
> By Alê!
>
> -----Mensagem original-----
> De: valter vieira de camargo [mailto:[EMAIL PROTECTED]]
> Enviada em: quarta-feira, 14 de março de 2001 10:48
> Para: [EMAIL PROTECTED]
> Assunto: [java-list] Para Alexandre: implementação de agregações e
> associações
>
> Ok... Alexandre ...
> É justamente no ponto da implementação a minha
preocupação....
> Gostei do que você disse e acho que realmente está certo.
> Minhas dúvidas eram mais quanto à implementação das associação. E também
> ach
> oque é assim que funciona.... isto é, dentro de uma classe , instancio uma
> outra e a utilizo para cumprimento das responsabilidades da primeira.
> No caso da agregação, um atributo da classe é do tipo de outra....
> É isto, não é ?
>
> Agora veja bem.
>
> Em um livro de UML do Furlan, encontrei que para se fazer a
> normalização de um modelo de classes, visando o projeto é claro, deve-se
> basear em algum tipo de banco de dados será utilizado. Se os dados do meu
> sistema serão persistidos utilizando BD OO a normalização se dá sem a
> preocupação das chaves primárias e estrangeiras... mas quando o me sistema
> utiliza BD relacional devo me preocupar com isso... só que ele apenas
> exemplifica a normalização utilizando BD OO. Você sabe alguma coisa sobre
> essas normalizações com BD relacional ?
>
> []'s Valter.
>
> Alexandre Rodrigues Gomes wrote:
>
> > Valter,
> >
> > no nível de linguagem, tanto agregação quando associação
> > se dão de maneiras similiares. O que as distingue é o seu
> > modelo. Na UML, a associação é feita apenas com uma linha
> > ligando as classes envolvidas enquanto que a agregação é
> > uma linha com um losango na ponta da classe agregadora.
> >
> > Conceitualmente, deveria-se utilizar agregação quando o
> > propósito de uma classe for o de encapsular o funcionamento
> > de algum objeto, ou seja, ele será parte constituinte daquela
> > classe. No caso da associação, a classe apenas tem conhecimento
> > de alguma outra classe e faz uso de alguma instância desta para
> > completude de suas responsabilidades.
> >
> > No primeiro capítulo do livro do Gamma (Design Patterns),
> > ele dá uma descrição legal sobre a utilização destas duas
> > alternativas.
> >
> > Abraços,
> > By Alê!
> >
> > -----Mensagem original-----
> > De: valter vieira de camargo [mailto:[EMAIL PROTECTED]]
> > Enviada em: terça-feira, 13 de março de 2001 19:38
> > Para: [EMAIL PROTECTED]
> > Assunto: [java-list] implementação de agregações e associações
> >
> > Visto que é comum a utilização de linguagens orientadas a
> > objetos e banco de dados relacionais, pretendo estipular um padrão de
> > implementação para tais casos de modelagem.
> > Estou desenvolvendo uma pesquisa com java e SyBase e devido as
> > diferenças entre os dos paradigmas algumas dúvidas surgem.
> > Eu gostaria de saber a diferença entre a implementação de um
> > modelo de classes com agregação e com associação. Percebo que a
> > agregação é fácil identificar, isto é, quando uma classe possui um
> > atributo cujo tipo é de outra classe. Mas e quando temos uma associação
> > ? Como vocês implementam uma associação sendo fiel à documentação ?
> >
> > Valter
> >
> > ------------------------------ LISTA SOUJAVA
----------------------------
> > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> > dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> > regras da lista: http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
[EMAIL PROTECTED]
> >
-------------------------------------------------------------------------
> >
> > ------------------------------ LISTA SOUJAVA
----------------------------
> > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> > dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> > regras da lista: http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
[EMAIL PROTECTED]
> >
-------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------