Business Object

Pessoal,
Qual o conceito de Business Object ? Quando e como ele deve ser usado ?
No site da sun só achei essa referencia:

Alguém poderia me falar mais sobre ele ?

obrigado mesmo.

Basicamente um BO é um objeto que implementa a lógica de negócios e/ou dados de negócio, pensa numa classe Pedido, ela é um BO, ele pode ter tais métodos : calcularPedido, fecharPedido, abrirPedido (esses métodos implementam a lógica de negócios).

Tipo essa definição está melhor (página 13 do livro Core J2EE Patterns):

“An object that implements business logic and/or business data and business logic are implemented in coarse-grained objects called business objects. In J2EE, business objects are implemented as session or entity beans. In some cases, a business object could be an arbitrary Java object that provides some service”

Olá,

Estou analisando a integração entre Business Object, Transfer Obejcts
e DAOs. No atual projeto em que estou, muitas regras de negócio estão nos métodos DAO e outros estão nos Transfers Objects, o que é errado.
Então estou estudando o uso de Business Object, centralizando as regras de negócio. Como eu utilizaria o BO junto com DAO ?
Alguém tem algum exemplo pra me passar?

O que está me confundindo é que no livro Core J2EE Patterns Second Edition (acho q a última versão) são utilizados Transfers Objects junto com DAOs.

Se alguém puder me ajudar… :oops:

Obrigado,

Olá,

Andei pesquisando em outros fórums, tutoriais e um camarada
me passou algo bem interessante e prático. estou respassando aki.

falow

abraço

class AccountDAO{ 
   public void update(AccountVO vo){ 
      ... 
      //executa SQL de insert, gerencia pool de conexões e/ou usa algum framework como Hibernate. 
   } 
} 

class AccountBusinessObject{ 
   private AccountDao dao = null; 
   public void transferFound(AccountVo from, AccoutVo to, double value){ 
     //usa o DAO para buscar dados da conta de origem 
    from = dao.loadByPrimaryKey( from.getId() ); 
    //se tem crédito, entãofaz o cálculo necessário 
    from.credit( from.credit - value ); 
    to.credit( from.credit + value ); 

    //usa o DAO para atualizar o valor decrementado no BD 
     dao.update( from ); 
     dao.update( to ); 

   } 
} 

class AccountVO(){ 
  private double credit; 
  private int id; 
  //etc 
}