Galera, vi alguns sites falando sobre uma classe VO, mas não consegui entender.
Alguém poderia me explicar?
VO (Value Object) é um padrão arquitetural do J2EE. No antigo J2EE, os EntityBeans nunca podiam ser desanexados do
container EJB, por isso, após uma consulta no banco dedados os atributos das entidades retornadas precisavam ser
copiados para objetos idênticos mas que não eram EJBs para que pudessem ser enviados para fora do container EJB.
A despeito do que os autores fazem você crer, VO é um conceito muito antigo, que já existia na programação estruturada, chamado Struct. Ele só foi aplicado na OO com um nome mais sofisticado.
Ele nada mais é do que uma classe que só contém dados.
A maior parte dos frameworks está evoluindo para você não ter que usar esse aborto da natureza. Uma classe sem métodos não só é um mau cheiro no código, como também vai totalmente contra o princípio da OO em si.
Qual seria a diferença entre um VO e um DTO? DTO seria uma cópia de uma classe? Tipo Cliente e ClienteDTO?
Cara melhor nem se preocupar com isso, cada empresa chama de um jeito é cada empresa da uma Finalidade para ele. Nem estressa.
Eu acho que em primeiro lugar vc tem que diferenciar VO de DTO.
http://www.adam-bien.com/roller/abien/entry/value_object_vs_data_transfer
http://blog.fragmental.com.br/2007/06/22/cuidado-com-domain-driven-design/
embora haja muita confusão, são coisa diferentes.
Blz, valeu pelas dicas galera =))
Abraço