Design Pattern DAO, BO, PO, VO,

Java

09/04/2009

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 !
Rodrigo Scorsatto

Rodrigo Scorsatto

Curtidas 0

Respostas

Cleuber_s

Cleuber_s

09/04/2009

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...).
GOSTEI 0
Rodrigo Scorsatto

Rodrigo Scorsatto

09/04/2009

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 !
GOSTEI 0
Gregui Shigunov

Gregui Shigunov

09/04/2009

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 ;) [url]http://gregui.wordpress.com/files/2007/10/diagrama_classes.jpg[/url] [url]http://gregui.wordpress.com/files/2007/10/sequencia.jpg[/url]
GOSTEI 0
Rodrigo Scorsatto

Rodrigo Scorsatto

09/04/2009

[quote="gregui"]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 ;) [url]http://gregui.wordpress.com/files/2007/10/diagrama_classes.jpg[/url] [url]http://gregui.wordpress.com/files/2007/10/sequencia.jpg[/url]
opa valeu, mais como ja disse antes eu gostaria de um exemplo pratico, desenho conceito eu ja vi nos monte...
GOSTEI 0
Rafael Coelho.

Rafael Coelho.

09/04/2009

Nao entedi exatamente o que eh este VO ? Eh tipo uma Serialization ? Alguem tem algum exemplo ja pronto ai para mostrar ?
GOSTEI 0
Lucas Vieira

Lucas Vieira

09/04/2009

[quote="rcoelho_6"]Nao entedi exatamente o que eh este VO ?
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:
class CarroVO {
    private String marca;
    private String modelo;
    private int ano;
    //getters, setters e construtores
}

class CarroBO {
    private static void estacionar(CarroVO carro, Vaga vaga) {}
    private static void contarQuilometragem(CarroVO carro) {};
}
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:
class Pessoa {
    private int idade;
    private String nome;
    private Endereco endereço;
    //faz outras coisas 
}

class PessoaDTO {
    private int idade;
    private String nome;
    private String rua;
    private String cidade;
    private String estado;
}
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...
GOSTEI 0
Tiago Loureiro

Tiago Loureiro

09/04/2009

[quote="lvieira"][quote="rcoelho_6"]Nao entedi exatamente o que eh este VO ?
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:
Muito Obrigado por esclarecer tão bem essa questão. abraço.
GOSTEI 0
POSTAR