| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 11:50:08
|
ronildobraga
JavaEvangelist
Membro desde: 29/03/2006 10:06:51
Mensagens: 433
Localização: sao paulo - sp
Offline
|
Pessoal
Quais as diferenças entre VO, TO, DTO e POJO
O que eu li até agora
VO e TO são absolutamente iquais, sem qualquer diferença... nem mesmo o contexto da situação muda.
DTO serve para transportar varios TO ou VO, ou seja... vária tabelas ? e pode tb funcionar identico ao VO e o TO.
POJO parecido com VO e TO, porem este pode conter algumas logicas de negocio.
Por exemplo... POJO no hibernate é identico ao VO e TO, serve para persistir dados do banco de dados.
Porem POJO pode ser tb um javaBean ? contendo getters and setters e mais algumas logicas como por exemplo sacar ou depositar dinheiro.
Obrigado.
|
Ronildo da Rocha Braga Jr.
Programador, nada mais.
blog: http://www.iprogramming.blogspot.com/ |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 11:59:08
|
ZehOliveira
Virtual Machine Man
Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline
|
POJO, basicamente, é um objeto normal que não estende ou implementa nenhuma classe ou interface de infra-estrutura (nenhuma classe de framework, por exemplo).
O resto é enxeção de linguiça e só faz complicar. Pense e programe para objetos, afinal, Java é uma linguagem orientada a objetos e não orientada a value objects, transfer objects ou data transfer objects.
Os transfers objects você só vai precisar em um contexto bem definido (ambiente distribuído), é totalmente anti-pattern usar fora disso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 12:00:06
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
A seguir, o q eu acho.
POJO, VO, DTO e TO são idênticos porém, POJO é um termo usado mais quando estamos falando de padrões GOF, e VO e TO em padrões J2EE.
Ambos são usados para transferir Dados entre as camadas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 14:45:04
|
renatosilva
Forum Spammer
![[Avatar]](/images/avatar/cf63547fadc1aa6e897a62291e0cb124.jpg)
Membro desde: 16/12/2004 17:09:19
Mensagens: 1785
Offline
|
POJO é o que você usa para fazer a Matrix
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 20:29:18
|
Thiago Senna
Forum Spammer
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1511
Offline
|
Quanto a uma definição de POJO, eu fico com a que o Zeh Oliveira citou.
Quanto ao DTO e TO entendo como o padrão do Core J2EE Patterns, onde estes são utilizados para simplesmente transportar dados de uma camada a outra.
Quanto ao VO, pelo que entendi lendo o livro Model Driven Design (Eric Evans), é uma forma de citar um objeto com getters e setters, no entanto com objetivos diferentes de uma entidade. Por exemplo, uma Entidade pessoa pode ter um VO que seja uma classe do tipo Endereco. Dependendo do contexto, pode acontecer do Endereco ser uma entidade mesmo estando relacionado com o aluno. Meu, o negócio é cavernoso!
|
Thiago Senna
Meu bog http://www.trsenna.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 21:56:42
|
Fabricio Cozer Martins
Virtual Machine Man
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
A questão que venho me pergutando hoje é:
Será que vale a pena realmente separar a lógica de negócio da classe de atributos ? É purismo OO , ou uma quebra de encapsulação ?
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2006 23:46:52
|
ZehOliveira
Virtual Machine Man
Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline
|
É anti-OO. Programando com lógica separada de atributos você não tem muito mais que um aglomerado de funções e algumas structs (bom e velho C). Isso é programação procedural...
O problema não é purismo, mas as desvantagens que programação procedural traz pro seu modelo - resusabilidade de código baixa é um exemplo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 00:34:19
|
TheMask
JavaBaby
![[Avatar]](/images/avatar/e6abb6620be44e2035008f84888a43b1.jpg)
Membro desde: 14/04/2006 19:28:16
Mensagens: 79
Offline
|
ronildobraga wrote:Quais as diferenças entre VO, TO, DTO e POJO
VO = objeto cuja identidade é baseada nos valores dos seus atributos.
TO==DTO (ou antigo VO) padrão que compõe vários objetos em um de menor granularidade a fim de reduzir o custo em chamadas remotas.
POJO =
ZehOliveira wrote:POJO, basicamente, é um objeto normal que não estende ou implementa nenhuma classe ou interface de infra-estrutura (nenhuma classe de framework, por exemplo).
É isso aí.
Fabrício Cozer Martins wrote:... vale a pena realmente separar a lógica de negócio da classe de atributos ?...
Em geral, você não deve separar a lógica dos dados. Manter isso junto, é um passo para garantir um bom encapsulamento. Exemplo?
|
**** Demaaaaaaais ****
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 08:35:01
|
renatosilva
Forum Spammer
![[Avatar]](/images/avatar/cf63547fadc1aa6e897a62291e0cb124.jpg)
Membro desde: 16/12/2004 17:09:19
Mensagens: 1785
Offline
|
TheMask wrote:
VO = objeto cuja identidade é baseada nos valores dos seus atributos.
Fowler wrote:A small simple object, like money or a date range, whose equality isn't based on identity.
Não entendi. Não seria o contrário? VO não é um objeto que representa um valor, como uma data ou dinheiro???
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 09:29:26
|
Fabricio Cozer Martins
Virtual Machine Man
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
ZehOliveira wrote:É anti-OO. Programando com lógica separada de atributos você não tem muito mais que um aglomerado de funções e algumas structs (bom e velho C). Isso é programação procedural...
O problema não é purismo, mas as desvantagens que programação procedural traz pro seu modelo - resusabilidade de código baixa é um exemplo.
Então temos um duelo entre :
Separação de Atributos da lógica do negócio x Transportar a lógica do negócio para as outras camadas.
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 09:56:16
|
renatosilva
Forum Spammer
![[Avatar]](/images/avatar/cf63547fadc1aa6e897a62291e0cb124.jpg)
Membro desde: 16/12/2004 17:09:19
Mensagens: 1785
Offline
|
Fabrício Cozer Martins wrote:
ZehOliveira wrote:É anti-OO. Programando com lógica separada de atributos você não tem muito mais que um aglomerado de funções e algumas structs (bom e velho C). Isso é programação procedural...
O problema não é purismo, mas as desvantagens que programação procedural traz pro seu modelo - resusabilidade de código baixa é um exemplo.
Então temos um duelo entre :
Separação de Atributos da lógica do negócio x Transportar a lógica do negócio para as outras camadas.
Como assim?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 10:00:08
|
Fabricio Cozer Martins
Virtual Machine Man
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
renato3110 wrote:
Fabrício Cozer Martins wrote:
ZehOliveira wrote:É anti-OO. Programando com lógica separada de atributos você não tem muito mais que um aglomerado de funções e algumas structs (bom e velho C). Isso é programação procedural...
O problema não é purismo, mas as desvantagens que programação procedural traz pro seu modelo - resusabilidade de código baixa é um exemplo.
Então temos um duelo entre :
Separação de Atributos da lógica do negócio x Transportar a lógica do negócio para as outras camadas.
Como assim?
Com um TO, vc transportaria somente os dados, sem bussiness rules para as outras camadas, e sem TO, vc transportaria os dados, junto com as bussiness rules.
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 10:00:31
|
ZehOliveira
Virtual Machine Man
Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline
|
Fabrício Cozer Martins wrote:Transportar a lógica do negócio para as outras camadas.
What?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 10:04:16
|
Fabricio Cozer Martins
Virtual Machine Man
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
ZehOliveira wrote:
Fabrício Cozer Martins wrote:Transportar a lógica do negócio para as outras camadas.
What?
o que eu quis dizer é que na tela, onde os dados seriam apenas para preencher os componentes visuais, os mesmos estariam encapsulados dentro de um objeto apenas, que faz uma operação de negócio complexa, isso claro se vocÊ colocar tudo em um objeto só (sem TO), isso pode quebrar a encapsulação entre camadas.
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2006 10:11:48
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
TheMask wrote:
TO== DTO (ou antigo VO) padrão que compõe vários objetos em um de menor granularidade a fim de reduzir o custo em chamadas remotas.
Só um comentário: TO é uma especialização de DTO para EJBs, principalmente Entity Beans. Basicamente um TO não precisa atravessar Camadas, ao contrário de um DTO. Fora deste contexto não há motivo para usar TO, use o termo genérico.
|
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 |
|
|
 |
|
|