Melhores Práticas com TO!

6 respostas
Thiago_Senna

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

6 Respostas

pcalcado

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

Thiago_Senna

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

pcalcado

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

Thiago_Senna

Valeu…

Me desculpe pela confusão!!

Um Abraço!

pcalcado

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

pcalcado

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

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

Criado 3 de março de 2005
Ultima resposta 3 de mar. de 2005
Respostas 6
Participantes 2