Metadados para Melhor Expressar Relacionamento entre Objetos: Que tal?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5115
Localização: Melbourne - Australia
Offline

Acho que nunca li nada sobre isso, se alguem possuir bibliografia, por favor compartilhe.

Todo mundo que ja estudou um pouquinho de OOP sabe que existem diversos tipos catalogados de relacionamento entre objetos, mas vou focar tres: Agregaçao, Composiçao e Associaçao (Aggregation, Composition e Association).

E impossivel (pelo menso que eu saiba) definir um relacionamento destes declarativamente em Java < 5. Quando voce faz:



Nao da para imaginar que tipo de relaçao A e B tem, voce vai rpecisar olhar o codigo. Geralmente compostos vao ser instanciados (ou pegos de algum lugar de forem Value Objects ou coisa parecida) diretamente na classe (na declaraçao do atributo ou no cosntrutor dessa), associaçoes geralmente sao setadas.

Com o uso de annotations, daria para amrcar essas relaçoes, definindo o que eh de qual tipo. O que voces acham disso?

Em primeira instancia, coisas como persistencia poderiam ser facilitadas (quando um objeto e atualizado, seus agregados tambem devem ser, mas nao seus associados), e outros usos podem surgir.

Alguma opiniao?

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3515
Localização: João Pessoa, Paraíba - Brasil
Offline

Assim, metade do trabalho feito com XML estaria resolvido trabalhando desse modo, mas seria ótimo se houvesse uma padronização nisso. Tipo, um annotation que simbolize composição, outro agregação, pra num ficar todo mundo inventando.

Será que dá pra abrir um request só pra colocar isso no Java?

Metade da configuração do Spring tava resolvida

Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt?
[WWW] [MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3515
Localização: João Pessoa, Paraíba - Brasil
Offline

Tipo, agora veio mais uma coisa, quem ia fazer isso? Mais um framework IoC? Aspectos? Mágica?

Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt?
[WWW] [MSN]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5115
Localização: Melbourne - Australia
Offline

Isso o que exatamente?

O programador eh quem conhece o relacionamentod e suas classes. Os frameworks podem usar essa ifnroamçao adicional para prover algumas simplificaçoes, outros programadores podem se beneficiar das anotaçoes como documentaçao (ja que voce vai acabar precisando dum diagrama para msotrar suas agregaçoes se nao usar algo do tipo)...

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5115
Localização: Melbourne - Australia
Offline

Baixei a JSR 250 (da qual o michael Santos faz parte, voce ta por ai, mister m?) e vi que o trabalho esta bem no inicio, ams nao contempla nada perto diso 9apesar de eu ter adorado algumas como @generated ).

Acabo de escrever um email pro time da spec:


Hi everyone,

I just downloaded the current draft for "JSR 250 - Common Annotations
for The Java Platform" and noticed that one of the things I believe
could really be great with annotations was missing.

As far as I know, there is no way to represent in Java or in any
language I've programmed so far that a relationship between two or
more objects is an aggregation, association or composition (ok, some
languages such as C++ provides a reference/value mechanism that makes
this no that hard, but it's still not the point).

Seems like some tools (e.g.
http://www.modelistic.com/website/userGuide/diagrams/Associations.html
) mark these relationships using doclets. Using this, some tool can
discover association roles given source files. As we all know much was
done through doclets and annotations are here to bring all this
information to runtime, when needed.

I think that this information can be really useful as documentation
for the code, and can really help EJB3/Hibernate, IoC containers,
Application Servers and other tools handling user objects' lifecycle.

It will be known that when an object is removed from a cache, updated,
deleted, created or something, all its relationships should be
evaluated, maybe deleting some compositions or doing some related
stuff.

This said, I suggest that you include in the specification annotations
for classic (and UML/OMG specified) object relationships between
objects (Aggregation, Association and Composition at least).

Just as I believe annotations can be great to bring UML stereotypes to
the real world, I believe people (and specially CASE tools) will use
an approach like this to document these relationships. I believe that
the objective of this JSR is to provide standard annotations, so it
would be no good if we have each vendor creating its own set of
annotations to document relationships.

Thanks for your time and regards,


--
Phillip Calçado
http://www.fragmental.com.br
ICQ: 1110nine38six5
M$N: pcalcado@gmail.com
Y!: pcalcado@yahoo.com
Crux Sacra Sit Mihi Lux

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7769
Localização: London, UK
Offline

*aplausos*
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Thiago Senna
Forum Spammer
[Avatar]

Membro desde: 11/02/2005 08:08:02
Mensagens: 1393
Offline

shoes wrote:voce ta por ai, mister m?


Num sei pq, mas eu imaginei a vós do Cid Moreira chamando o Mister M!

Thiago Senna
Meu bog http://www.trsenna.wordpress.com
[Email]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Apoiado e desenvolvido por Caelum Cursos Java - Powered by JForum 2.1.8 © JForum Team