Vo, bo, dao

Primeiramente Feliz ano novo a todos do forum. Estive pesquisando sobre VO(TO), BO,DAO e me deparei com algumas duvidas.

  1. Value Object (VO) sao objetos que sao transmitidos de camada por camada? Eles possuem metodos get e set de suas propriedades?
  2. Business Delegate (BO) sao os mesmos que VO porem com logica de negocio incluido?
  3. Com base nisso os meus DAO`s simplemente possuem logica de banco?

Seguindo isso tudo digamos que a minha classe Cliente seria assim:

class ClienteVO {
  private String nome;
  private Endereco;
  // get e set do mesmo
}

class ClienteBO {
  // os mesmos atributos e get e set do VO so que agora com logica de negocio
}

class ClienteDAO {

  private void inserir(ClienteVO cliente) {

  }

}

Isso tudo pode ser usado em aplicacao Swing ou Web…

Obrigado.

Primeiramente: não existe VO (objeto de valor) e BO (objeto de negógio), o que existe é “O” (objeto)! E este O possui atributos e métodos numa unidade só, e não há, necessariamente correlação entre atributos e getters/setters.

Com relação a acesso a dados, existe JPA/Hibernate (ou JPA/TopLink, se achar preferível) que gerencia a manipulação de dados no BD. É um pouco incompatível com a idéia do DAO clássico, que gerencia o CRUD de objetos de domínio, pois no Hibernate, só há a preocupação de gerenciar o estado attach/detach, e a transação.

Ou seja, não leve essas letrinhas muito a sério.

[quote=Leonardo3001]Primeiramente: não existe VO (objeto de valor) e BO (objeto de negógio), o que existe é “O” (objeto)! E este O possui atributos e métodos numa unidade só, e não há, necessariamente correlação entre atributos e getters/setters.

Com relação a acesso a dados, existe JPA/Hibernate (ou JPA/TopLink, se achar preferível) que gerencia a manipulação de dados no BD. É um pouco incompatível com a idéia do DAO clássico, que gerencia o CRUD de objetos de domínio, pois no Hibernate, só há a preocupação de gerenciar o estado attach/detach, e a transação.

Ou seja, não leve essas letrinhas muito a sério.[/quote]

JPA/Hibernate the best!!

[quote=omaisnormalbaba]Primeiramente Feliz ano novo a todos do forum. Estive pesquisando sobre VO(TO), BO,DAO e me deparei com algumas duvidas.

  1. Value Object (VO) sao objetos que sao transmitidos de camada por camada? Eles possuem metodos get e set de suas propriedades?
    [/quote]

Existem dois padrões chamados Value Object

  1. Value Object : Objecto que contém apenas um valor. Exemplo: Date, Integer, String , etc…
  2. Value Object : sinónimo de Transfer Object : objecto contruido para transportar dados entre nodos (máquinas diferentes)

para 1 sim, eles são trasmitidos de camada em camada. para 2 não. Ele pertence apenas a uma camada: A de infraestrutura encarregue de enviar os dados à outra máquina e vice-versa.

para 1 não. Normalmente não possuem get e set , mas podem conter métodos especiais para transformar o valor em outros tipos: Por exemplo, Integer tem um intValue() para pegar o valor como um int.

para 2 depende da implementação. Em tese não precisa. apenas um atributo com visibiidade de pacote é suficiente. E o objeto encarregue da trasmissão pode ler e escreve resses atributos sem usar get/set. não ha razão para encapsular os atributos, neste caso.

Primeiro vc está confundindo Business Delegate com Business Object. São coisas diferentes.
busines delegate é um objeto que está no cliente e delega operações para o servidor. Ele esconde a forma como a delegação é feita. (RMI, WebService, etc…) O business Object contém regras de negocio a serem aplicadas a entidades do sistema.

Nem um , nem outro são iguais a VO. Não têm get/set. Ele contém metodos de negocio. Por exemplo:


class Loja {

  void vende (Pedido p , Cliente c){
  
       pedido.setCliente(c);

       Fiscla fiscal = new Fiscal();

       NotaFiscal  nf = fiscal.gerNotaFiscal(p);

      Dao dao = new Dao();

    dao.persist(nf);
    dao.persist(p);
  }

}
}

Sim. Apenas logica de acesso aos dados.

Antes de criar um tópico por favor faça uma pesquisa. Este tópico já foi discutido aqui milhões de vezes:

http://www.google.com/search?q=vo+bo+site%3Aguj.com.br