Melhores Práticas com TO!

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

Oi,

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.

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ó.

Há. Passe o próprio objeto, ou use o padrão Memento.

por que você não passa simplesmente os objetos?

[]s

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

Lucca? Po, conhecendo o Lucca me sinto hornado com a confusão :slight_smile:

Use a tag quote, para facilitar clique no botão “citar”.

[]s

Valeu…

Me desculpe pela confusão!!

Um Abraço!

Oi,

provavelmente onde hj você passa um DTO, pdoe simplesmente passar um objeto de domínio. Em vez de enviar AlunoDTO, envie Aluno.

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.

Você pdoe criar um DAO para qualquer objeto que rpecise ser persistido, e isso pode envolver persistir qualquer objeto.

[]s

[quote=fabgp2001] Opa, o Phillip que me derrubar. :lol:
Tentei postar nos outros dois e só recebi “Este tópico se encontra bloqueado”.:shock:
[/quote]

Fiz a maior cagada…esse negócio de ser chamado de careca me abalou :stuck_out_tongue:

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