Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
O Portal javafree.org inicia mais uma promoção para os usuários do fórum. Quem publicar mais posts válidos (perguntas ou respostas) entre 16/4 a 13/7 levará para casa um iPad 2 de 16GB!
e ai pessoal, gostaria que vocês me ajudassem nos design pattern o que é DAO, BO, PO, VO, para que servem? qual sua utilidade? quando uso cada um deles? poderiam me dar alguns exemplos para eu entender melhor?
O DAO (data acess object) é um padrão de acesso à dados, serve para desacoplar a camada de negócio (por exemplo) da camada de persitência.
O VO (value object) é comumente aliado ao DAO para realizar o transporte de objetos à camada de acesso à dados. Geralmente (mas não sempre) refletem as mesmoa propriedades das tabelas que se quer manter.
O PO , nunca ouvi falar, mas se for POJO. São objetos que não estão atrelados a nenhum framework, desacoplados e flexíveis. Contém apenas as propriedades persistíveis de acrodo com a especificação da JPA.
O BO , se for o que estou pensando, são Business Object. Objetos que estão relacionados à camada de negócio da aplicação (ou caso de uso...).
_________________ JavaFree.org
a parte de conceito eu entendi, o PO (persistent object) possui seus campos iguais o da tabela do bd... mais o que eu queria mesmo e um exemplo pratico desses patterns, sera que alguem pode me dar alguns exemplos?
cara, vejo normalmente 3 definições para VO ( Value Object ). por serem comuns, acredito que já não se possa dizer qual é certa ou errada... o importante é saber com o que está lidando:
1. VO é um objeto sem comportamento, apenas com os dados. Geralmente vai ter um ou mais BO (Business Object) trabalhando com ele... exemplo:
2. VO é um DTO (Data Transfer Object), ou seja, um objeto para transferir dados entre camadas/processos para reduzir o número de chamadas a métodos (o que pode ser muito útil em caso de chamadas remotas como RMI)
exemplo:
repare que a classe DTO condensa todas informações nos tipos básicos. assim vc não precisa passar as classes de seu modelo, mas uma classe que agrupe informações delas
3. VO na terceira definição acho que seja mais complexo de explicar. Tem a ver com o conceito de identidade. Um Value Object nesta definição não possui identidade, ele só importa pelo que vale. Vou tentar dar um exemplo: Se eu tenho 100 reais na carteira e vc 100 reais, e trocarmos...está tudo bem... não importa que mudaram as cédulas...o importante é o valor... Mas se eu tenho um filho e vc tem um filho... não dá pra gente trocar e continuar na mesma... meu filho é um só...ele é importante pelo que ele é (identidade) e não pelo que ele vale (ou pela altura, idade, etc...) O conceito de VO pode variar de sistema pra sistema... pro banco central, cada célula pode ter sua importância (pra rastrear um assalto por exemplo)... mas basicamente é isso...
Rodrigo_Scorsatto Offline
Posts: 242
e ai pessoal, gostaria que vocês me ajudassem nos design pattern o que é DAO, BO, PO, VO, para que servem? qual sua utilidade? quando uso cada um deles? poderiam me dar alguns exemplos para eu entender melhor?
valeu !
_________________
SDRS,
Rodrigo Scorsatto.
cleuber_s Offline
Posts: 210
O DAO (data acess object) é um padrão de acesso à dados, serve para desacoplar a camada de negócio (por exemplo) da camada de persitência.
O VO (value object) é comumente aliado ao DAO para realizar o transporte de objetos à camada de acesso à dados. Geralmente (mas não sempre) refletem as mesmoa propriedades das tabelas que se quer manter.
O PO , nunca ouvi falar, mas se for POJO. São objetos que não estão atrelados a nenhum framework, desacoplados e flexíveis. Contém apenas as propriedades persistíveis de acrodo com a especificação da JPA.
O BO , se for o que estou pensando, são Business Object. Objetos que estão relacionados à camada de negócio da aplicação (ou caso de uso...).
_________________
JavaFree.org
Rodrigo_Scorsatto Offline
Posts: 242
a parte de conceito eu entendi, o PO (persistent object) possui seus campos iguais o da tabela do bd... mais o que eu queria mesmo e um exemplo pratico desses patterns, sera que alguem pode me dar alguns exemplos?
valeu !
_________________
SDRS,
Rodrigo Scorsatto.
gregui Offline
Posts: 54
Quer que desenhe?
hehehe
então, aqui tem uma diagrama de classes e um diagrama de seqüencia.
tem as VOs, DAO e BO (que são as Servlets)
espero que ajuda
http://gregui.wordpress.com/files/2007/10/diagrama_classes.jpg
http://gregui.wordpress.com/files/2007/10/sequencia.jpg
_________________
Gregui Shigunov
http://gregui-shigunov.blogspot.com
A dúvida é o princípio da sabedoria!!!
Rodrigo_Scorsatto Offline
Posts: 242
opa valeu, mais como ja disse antes eu gostaria de um exemplo pratico, desenho conceito eu ja vi nos monte...
_________________
SDRS,
Rodrigo Scorsatto.
rcoelho_6 Offline
Posts: 10
Nao entedi exatamente o que eh este VO ?
Eh tipo uma Serialization ?
Alguem tem algum exemplo ja pronto ai para mostrar ?
lvieira Offline
Posts: 237
cara, vejo normalmente 3 definições para VO ( Value Object ). por serem comuns, acredito que já não se possa dizer qual é certa ou errada... o importante é saber com o que está lidando:
1. VO é um objeto sem comportamento, apenas com os dados. Geralmente vai ter um ou mais BO (Business Object) trabalhando com ele...
exemplo:
2. VO é um DTO (Data Transfer Object), ou seja, um objeto para transferir dados entre camadas/processos para reduzir o número de chamadas a métodos (o que pode ser muito útil em caso de chamadas remotas como RMI)
exemplo:
repare que a classe DTO condensa todas informações nos tipos básicos. assim vc não precisa passar as classes de seu modelo, mas uma classe que agrupe informações delas
3. VO na terceira definição acho que seja mais complexo de explicar. Tem a ver com o conceito de identidade. Um Value Object nesta definição não possui identidade, ele só importa pelo que vale. Vou tentar dar um exemplo:
Se eu tenho 100 reais na carteira e vc 100 reais, e trocarmos...está tudo bem... não importa que mudaram as cédulas...o importante é o valor...
Mas se eu tenho um filho e vc tem um filho... não dá pra gente trocar e continuar na mesma... meu filho é um só...ele é importante pelo que ele é (identidade) e não pelo que ele vale (ou pela altura, idade, etc...)
O conceito de VO pode variar de sistema pra sistema... pro banco central, cada célula pode ter sua importância (pra rastrear um assalto por exemplo)... mas basicamente é isso...
Relacionados
Eliminando codificação Java das páginas JSP http://javafree.uol.com.br/topic-1099-Eliminando-codificacao-Java-das-paginas-JSP.html ::: Dúvida em migração de Sistemas ::: http://javafree.uol.com.br/topic-8968---Duvida-em-migracao-de-Sistemas--.html Swing e MVC http://javafree.uol.com.br/topic-849942-Swing-e-MVC.html Arquitetura e MVC http://javafree.uol.com.br/topic-7108-Arquitetura-e-MVC.html Problemas com herança.... http://javafree.uol.com.br/topic-851164-Problemas-com-heranca.html Quem chama o DAO: Interface ou Negócio? http://javafree.uol.com.br/topic-852090-Quem-chama-o-DAO-Interface-ou-Negocio.html DAO BusinessObject http://javafree.uol.com.br/topic-6677-DAO-BusinessObject.html Implementacao http://javafree.uol.com.br/topic-855551-Implementacao.html