Pergentino Araújo escreveu:
Pra mim, o conceito é o seguinte:
VO - Objeto (talvez Entidade) que possui atributos e, claro, vai ser
trafegado entre o server e o client.
DTO - Objeto multivalorado, que possui vários VO's. Um exemplo prático
é o DTO ter um mapa dentro dele e, claro, vai ser também trafegado
entre o server e o client.
[]'s
2010/3/1 Mário Júnior <juninho...@gmail.com <mailto:juninho...@gmail.com>>
Eu uso o termo VO ... na real, tanto faz DTO ou VO.
Uso para representar objetos que PODEM ou NAO PODEM ter
identidade, para encapsular dados para transferencia entre client
e server e representar dados vindo do BD.
Pra mim, Value Obejct, tem mesmo só q representar valores, nao
importando se a cotação do sapo na bolsa é relativamente superior
a flexibilidade do rabo da largatixa =D (putz.. infame.. hehehe)
[]s
Em 1 de março de 2010 12:47, Fábio <fabi...@gmail.com
<mailto:fabi...@gmail.com>> escreveu:
Eu estava acessando agora um tutorial do Swiz e é usado o
termo DTO:
http://www.webappsolution.com/wordpress/2010/01/07/swiz-passive-view-example-part-2/
2010/3/1 Vinicius Martinez <vinicius.b.marti...@gmail.com
<mailto:vinicius.b.marti...@gmail.com>>
Na verdade isso e uma confusão sem paradeiros..
Por partes..
Como voce mesmo disso, o VO (pattern Value Object), é
utilizado para representação de objetos sem
identidades..porém em algum momento de tempo/espaço isso
se perdeu e o pessoal começou a chamas as entidades do
banco de dados (representação ORM das tabelas) de VO....
Se alguém conseguir me provar que uma representação desse
tipo não possui um conceito de identidade (lembrando que é
uma representação de um modelo de dados presente em algum
SGDB, ou seja, geralmente possui "Pk's" e "FK's").
Já o DTO é um outro pattern que basicamente tem algumas
funções:
1 - Evitar o tráfego desnecessário de informações na rede
(EX: supondo que voce tenha um Cadastro de Clientes e
tenha alguns campos como data de criação, data de
alteração, etc..esses campos geralmente não são mostrados
em algumas interfaces sendo assim, voce encapsula esses
campos "mostráveis" em um objeto de transferência,
economizando banda de rede)
2 - separação em camadas
3 - esconder o modelo de dados da aplicação como um todo
2010/3/1 Fábio <fabi...@gmail.com <mailto:fabi...@gmail.com>>
Estou iniciando em Flex e vejo por toda parte o uso do
nome VO para a representação dos objetos..
Pelo que eu estudei de DDD (Domain Driven Design), o
termo VO (Value Object) é usado para representar
objetos que não tem identidade, ex: Dinheiro
Já o DTO (Data Transfer Object) é utilizado para troca
de dados entre sub-sistemas, sendo um termo mais
parecido com a realidade do Flex, onde é trafegado
tanto objetos VO e Entity (que tem identidade. Ex:
Cliente)
O que vcs acham?
--
Atenciosamente
Fábio Tadeu da Costa
fabiotc.com.br <http://fabiotc.com.br>
--
Você recebeu esta mensagem porque está inscrito na
lista "flexdev"
Para enviar uma mensagem, envie um e-mail para
flexdev@googlegroups.com <mailto:flexdev@googlegroups.com>
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
<mailto:flexdev-unsubscr...@googlegroups.com>
Mais opções estão disponíveis em
http://groups.google.com/group/flexdev
--
Vinicius Branda Martinez
MSN/GTalk: vinicius.b.marti...@gmail.com
<mailto:vinicius.b.marti...@gmail.com>
Skype: vinicius.branda
--
Você recebeu esta mensagem porque está inscrito na lista
"flexdev"
Para enviar uma mensagem, envie um e-mail para
flexdev@googlegroups.com <mailto:flexdev@googlegroups.com>
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
<mailto:flexdev-unsubscr...@googlegroups.com>
Mais opções estão disponíveis em
http://groups.google.com/group/flexdev
--
Atenciosamente
Fábio Tadeu da Costa
www.fabiotc.com.br <http://www.fabiotc.com.br>
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para
flexdev@googlegroups.com <mailto:flexdev@googlegroups.com>
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
<mailto:flexdev-unsubscr...@googlegroups.com>
Mais opções estão disponíveis em
http://groups.google.com/group/flexdev
--
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR
Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100
Itacorubi
Florianopolis SC Brasil
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para
flexdev@googlegroups.com <mailto:flexdev@googlegroups.com>
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
<mailto:flexdev-unsubscr...@googlegroups.com>
Mais opções estão disponíveis em
http://groups.google.com/group/flexdev
--
Atenciosamente, Pergentino Araújo.
Arquiteto Java/Flex
MSc. Engenharia de Software
Adobe Certified Expert - Flex 3 with AIR
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
@Fábio
Eu tambem passei por essa perrenga... mas tudo depende do seu projeto.
No meu caso eu optei em utilizar os 2 padrões. Entre os motivos foram:
1. *Performace*: Em algumas query com o Hibernate, caso do meu SELECT
de parceiro de negocios tava levando 55s com criteria do
hibernate, apos a mudança para HQL caiu para apenas milessegundos.
Usando a opção resultTransformers.
2. *Compartilhamento de VO's*: em outros projetos até mesmo de
terceiros (disponibilizei as VO em um .jar para outra empresa)
3. *Calculos e agrupamentos personalizados*: SELECT complexos que
necessitem do GROUP BY tambem usando o resultTransformers.
VO - Entidade pública - compartilhada por um .jar
DTO - Mapeamentos e persistencia do banco (aqui no projeto JPA + Hibernate)
ResutlTransformers - metodo responsavel em transformar seu SELECT direto
no seu VO
https://www.hibernate.org/hib_docs/v3/api/org/hibernate/transform/ResultTransformer.html
--
Atenciosamente,
Beto
+55 61 4063.6303 | 61 8409.1775
Brasília - DF
Web Inovações
www.webinovacoes.com.br
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev