Conceitos: JavaBeans, Pojo, VO e DTO  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
pedromv
Thread.start()

Membro desde: 16/08/2006 13:48:38
Mensagens: 47
Offline

Olá galera do GUJ.

Estou com dúvidas conceituais sobre os 4 termos citados no título. Afinal de contas, quais são as diferenças e semelhanças entre essa sopa de letrinhas que eu citei? O que significa cada um desses termos e onde são usados?

Gostaria de pedir para que ninguém respondesse no "achismo", pois isso já aconteceu em outros tópicos relacionados e no fim das contas eu não consegui sanar minha dúvida.

Grato
[MSN] [ICQ]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

http://www.guj.com.br/posts/list/23944.java

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

pedromv wrote:Olá galera do GUJ.

Estou com dúvidas conceituais sobre os 4 termos citados no título. Afinal de contas, quais são as diferenças e semelhanças entre essa sopa de letrinhas que eu citei? O que significa cada um desses termos e onde são usados?

Gostaria de pedir para que ninguém respondesse no "achismo", pois isso já aconteceu em outros tópicos relacionados e no fim das contas eu não consegui sanar minha dúvida.

Grato


VO = Value Object. Objeto de valor. É um objeto normalmente imutável (não tem set) que serve para conter um valor. Exemplos: Integer, BigDecimal (outros exemplos incluir os design patterns Money e Range)

DTO ou apenas TO = (Data) Transfer Object. Objecto de transferencia. Serve para enviar dados entre camadas do sistema que podem ou não estar na mesma máquina. São Serializáveis.

POJO = Plain Old Java Object (Velho e Simples Objecto Java) é um referencia a objectos que não dependem da herança de interfaces ou classes de frameworks externos.

JavaBean = Padrão para escrever objetos que contém estado. É uma especificação. Algumas coisas necessárias são : Construtor publico sem argumentos e metodos de acesso começam com set/get, mas tem mais.


Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
Alexandre Ferreira
Virtual Machine Man
[Avatar]

Membro desde: 20/09/2006 20:07:03
Mensagens: 520
Localização: Rio de Janeiro
Offline

Resumo bom...mas acho que o POJO e o VO estao errados...Ou nao?!

Alexandre Ferreira
Blog: http://alexandreferreira.com.br
[WWW] [MSN]
pedromv
Thread.start()

Membro desde: 16/08/2006 13:48:38
Mensagens: 47
Offline

Obrigado, Sérgio

Alguém mais concorda ou discorda do Sérgio?

Alexandre, o que você acha que é? Posta aí pra podermos discutir e chegar a uma conclusão

Abraços
[MSN] [ICQ]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Estão corretos exceto que JavaBeans, na verdade, é uma especificação de modelo de componentes manipuláveis por intefaces gráficas falida e que o nome é utilizado hoje vulgarmente para qualquer coisa que obedeça a nomenclatura de get/set.

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
[Email] [WWW] [Yahoo!] [MSN]
jonataswingeter
JavaBaby
[Avatar]

Membro desde: 20/11/2006 10:15:55
Mensagens: 90
Offline

Javabean é um componente de software reusável, normalmente usado em aplicações standalone e applets.
Possui característas distintas, das quais suas funcionalidades principais consistem em:
Instrospecção, customização, eventos, propriedades e persistência.

Só não entendi o que o calcado escreveu: "Interface gráfica falida".


Jônatas Wingeter Rodrigues

"Tem coisas que só FP faz pra você. fat(0) -> 1; fat(N) -> N * fat(N-1)"
[ICQ]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

pcalcado wrote:Estão corretos exceto que JavaBeans, na verdade, é uma especificação de modelo de componentes manipuláveis por intefaces gráficas falida e que o nome é utilizado hoje vulgarmente para qualquer coisa que obedeça a nomenclatura de get/set.


É usado ERRADAMENTE. Veja
http://java.sun.com/docs/books/tutorial/javabeans/whatis/index.html

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

afsrj wrote:Resumo bom...mas acho que o POJO e o VO estao errados...Ou nao?!


Esclarecendo:
Suponho que diz que VO está errado poruqe vc associa VO como sendo a mesma coisa que DTO. Na verdade isso é um erro histórico que não é mais correto. No principio dos tempos DTO era sinónimo de VO, mas também era sinónimo de muitas outras coisas. Várias tecnologias usavam o termo DTO para se referirem a coisas diferentes. Então o termo DTO transformou-se num problema e atualmente considerado obsuleto. Para subtituir veio o termo TO que não deixa duvidas do que é. O termo VO tem realmente outro significado que não é sinónimo deste. Veja http://www.martinfowler.com/eaaCatalog/dataTransferObject.html

Então , hoje em dia, o correto é usar os termos TO e VO e não DTO pq causa confusão.


Quanto ao POJO não sei por quê você acha que possa estar errado. Veja http://en.wikipedia.org/wiki/Plain_Old_Java_Object



Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

sergiotaborda wrote:Então , hoje em dia, o correto é usar os termos TO e VO


Leia o blog do Phillip Calçado para entender porque raramente se usa VO e TO do jeito descrito nos design patterns da Sun.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Luca wrote:Olá

sergiotaborda wrote:Então , hoje em dia, o correto é usar os termos TO e VO


Leia o blog do Phillipe Calçado para entender porque raramente se usa VO e TO do jeito descrito nos design patterns da Sun.

[]s
Luca


Qual blog ?
A pergunta era sobre conceitos , não sobre uso

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

sergiotaborda wrote:
É usado ERRADAMENTE. Veja
http://java.sun.com/docs/books/tutorial/javabeans/whatis/index.html


Sérgio,

Em teoria eu concordo com você mas não existe mais o conceito de javaBeans há anos. Se quem criou a especificação foi a primeira a chamar classes com get/set de bean não há o que discutir.

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
[Email] [WWW] [Yahoo!] [MSN]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

pcalcado wrote:
sergiotaborda wrote:
É usado ERRADAMENTE. Veja
http://java.sun.com/docs/books/tutorial/javabeans/whatis/index.html


Sérgio,

Em teoria eu concordo com você mas não existe mais o conceito de javaBeans há anos. Se quem criou a especificação foi a primeira a chamar classes com get/set de bean não há o que discutir.


Conceitos não deixam de existir... isso é anacrónico.
Podem deixar de ser usados, ou evoluir, mas não deixam de existir.
JavaBeans é umas especificação. Todos os componentes Swing são JavaBeans (não deixou de ser usado). O cara perguntou o conceito. O conceito é isso ai que está no link.

O detalhe importante é que um javabean não é algo que tem get/set, é algo que lança eventos quando o seu estado muda (ou seja, todos os set lançam eventos). É isso que diferencia um JavaBean de um POJO

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

sergiotaborda wrote:
O detalhe importante é que um javabean não é algo que tem get/set, é algo que lança eventos quando o seu estado muda (ou seja, todos os set lançam eventos). É isso que diferencia um JavaBean de um POJO


No caso da tua definição, nenhum dos componentes do Swing são javabeans, porque eventos e setter não estão atrelados. Uma propertie não precisa suportar notificação, assim como um evento não precisa estar associado somente a propriedades.

Fora isso, a forma como era usada em 98, quando o JBF foi criado já morreu, é uma especificação morta, são conceitos mortos. Você pode continuar pensando em 98, mas não reclame quando as pessoas te acharem estranho por não usar o entendimento contemporâneo destes conceitos.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Bom, Sérgio, basta você discutir com a Sun que foi quem especificou.

Olhe esses links:

http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPBeans2.html#63735
http://java.sun.com/j2ee/tutorial/1_3-fcs/examples/src/web/bookstore2/util/Currency.java


Quem criou o conceito tem o direito de alterá-lo

Eu acho importante mencionar a especificação falida do JavaBeans mas não adianta dar murro em ponta de faca, a 'comunidade' já estragou o conceito faz muito tempo.

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
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team