Bom dia colegas.
Há algumas semanas me deparei com alguns desafios.
Tive que aprender EJB3 aqui onde trabalho (ainda aprendendo… diga-se de passagem) e mais algumas tecnologias como webServices, etc.
Ainda em fase de treinamento tive contato com um protótipo onde temos a seguinte estrutura:
Base de dados relacional;
Entidades mapeando essa base de dados;
SessionBeans acessando essas entidades;
WebServices disponibilizando essas funções pro sistema (acessado por Conteiners Web em máquinas remotas ou outra aplicação Desktop)
Acontece que na documentação as entidades estão especificadas como… VOs!
Como sou curioso resolvi pesquisar o que seria exatamente esse padrão VO.
Encontrei várias discuções pelo google, incluindo muitas aqui no GUJ de alto nível e o que notei foi uma grande divergência de opiniões, embora tenha sido bastante esclarecedor.
O que me deixou com a pulga atrás da orelha foi a classificação dessas entidades como VOs, pelo que li VOs seriam apenas objeto de armazenamento de valores (como o nome já diz…) e nem costumam ter setters, já entidades seriam uma classificação diferenciada, embora nenhum possuisse comportamento (o que fere OO, mas isso já é outra discução).
Enfim, essa classificação das EntityBeans como VOs está correta? Por que pra mim me parece mais um TO (transfer object) já que eles além de armazenarem valores servem também para o transporte disto através das camadas seja do EJB pro webService ou do webservice pra nuvem.
Um tópico que me auxiliou:
http://www.guj.com.br/posts/list/53305.java
Gostaria de saber se essa minha observação está correta e o que vocês tem a acrescentar, uma vez que embora eu acredite que tenha entendido o conceito ainda me ficou aquela dúvida de “será que entendi corretamente? será que eu aprendi errado?”.
Desculpem-me por criar mais uma thread sobre isso, mas meu espírito não me permite ficar com essa dúvida.
Tenho mais perguntas depois… hehehe
Abraços e muito obrigado pela atenção!