| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 08:23:30
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Olá...
Eu gostaria de tirar algumas dúvidas com o grupo e conhecer um pouco mais a opinião de vocês sobre os famosos Data Transfer Objects ou Value Objects para os íntimos!
Em uma discussão aqui no GUJ vi que alguns dos conceitos que eu imaginava serem os ideais conforme li em alguns livros não são tão ideais assim, onde o usuário pcalcado indicou a leitura de um artigo. Isso foi discutido em um tópico sobre DAO, no link abaixo:
http://www.guj.com.br/posts/list/15/20232.java
Isso me motivou ainda mais para escrever este tópico!
Afinal, onde devo usar os Transfer Objects?
Até onde sei deve ser usado no transporte de dados entre as camadas do sistema, como por exemplo as camadas de apresentação, controle e negócio. Mas isso é realmente viável???
Criar um TO dentro da camada de controle e passar ele para a um DAO me parece ser uma alternativa aceitável. É realmente aceitável ou há alternativas melhores?
Mas e transportar um TO da camada de apresentação para a camada de controle? Isso é realmente uma boa prática ou é um ant-pattern? Qual é a melhor maneira de enviar dados da camada de apresentação para a camada de controle???
Um Abraço!
Thiago Senna
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 10:09:47
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Oi,
Thiago Senna wrote:
Afinal, onde devo usar os Transfer Objects?
Quando utilizar objetos normais é custoso.
Se você tem um servidor no Rio e outro em Sampa que rpecisam compartilhar objetos, você passar objetos um a um é custoso. Empacote eles num DTO e mande tudo que rpecisar de uma vez.
Thiago Senna wrote:
Até onde sei deve ser usado no transporte de dados entre as camadas do sistema, como por exemplo as camadas de apresentação, controle e negócio. Mas isso é realmente viável???
Não necessariamente camadas, mas entre dois "lugares" diferentes (sejam nós em uma rede, JVMs, subsistemas...).
Na boa, nunca vi na minha vida um bom motivo ara usar DTO numa JVM só.
Thiago Senna wrote:
Criar um TO dentro da camada de controle e passar ele para a um DAO me parece ser uma alternativa aceitável. É realmente aceitável ou há alternativas melhores?
Há. Passe o próprio objeto, ou use o padrão Memento.
Thiago Senna wrote:
Mas e transportar um TO da camada de apresentação para a camada de controle? Isso é realmente uma boa prática ou é um ant-pattern? Qual é a melhor maneira de enviar dados da camada de apresentação para a camada de controle???
por que você não passa simplesmente os objetos?
[]s
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 10:22:50
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Olá Lucca..
Acho que andei errando nos meus conceitos de TO..
Eu considei isso como um bom componente para a arquitetura do Projeto.
VocÊ escreveu assim:
Isso é o suficiente para considerar que eu andei utilizando o TO como gambiarra!!!
Obrigado pela atenção!
(obs: como vocês fazem para colocar aquela caixa contendo o que uma pessoa escreveu... igual eu tentei fazer em cima???)
Um Abraço!
Thiago
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 10:28:33
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Thiago Senna wrote:Olá Lucca..
Lucca? Po, conhecendo o Lucca me sinto hornado com a confusão
Thiago Senna wrote:
(obs: como vocês fazem para colocar aquela caixa contendo o que uma pessoa escreveu... igual eu tentei fazer em cima???)
Use a tag quote, para facilitar clique no botão "citar".
[]s
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 10:32:10
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Valeu..
Me desculpe pela confusão!!
Um Abraço!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 11:14:16
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Oi,
Thiago Senna wrote:
Com a discussão dos dois tópicos acima, e como o sistema também rodará tudo na mesma jvm, qual seria a melhor forma de implementar os DAO'S sem DTO?
provavelmente onde hj você passa um DTO, pdoe simplesmente passar um objeto de domínio. Em vez de enviar AlunoDTO, envie Aluno.
Thiago Senna wrote:
Eu antes para o DTO por parâmetro para o DAO. Se eu parar de usar o DTO, então começarei a passar o próprio objeto por parâmetro??? Ou passo atributo por atributo?? OU eu misturo tudo???
Nunca é bom destrinchar um objeto. Na veddade, num bom porjeto OO issod eve ser impossibilitado através do encapsulamento e information hiding. PAsse o objeto e mande o DAO se virar.
Thiago Senna wrote:
DAO precisa necessariamente estar ligado à uma classe de negócio, ou eu também posso criar um DAO que não esteja ligado com nenhuma classe de negócio?
Você pdoe criar um DAO para qualquer objeto que rpecise ser persistido, e isso pode envolver persistir *qualquer* objeto.
[]s
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 11:30:42
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
fabgp2001 wrote: Opa, o Phillip que me derrubar.
Tentei postar nos outros dois e só recebi "Este tópico se encontra bloqueado".
Fiz a maior cagada...esse negócio de ser chamado de careca me abalou
Bem, um comentário sobre sua estratégia, Fábio, é que a classes a ser persistida não deveria saber disso.
Ela deveria apenas saber suas responsabildiades para o bom funcionamento do sistema, o fatod e ter que ser salva é uma complexidade acidental, por isso existe toda a camada de persistência e toda a gambiarra objet-relacional: para fingirmos para as classes do nosso domínio que elas estão sempre em memória, que persistência é transparente.
[]s
This message was edited 1 time. Last update was at 03/03/2005 11:31:03
|
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 |
|
|
 |
|
|