JavaBean X VO(DTO bla bla bla)

<EDITADO>Acabei de descubrir o problema… na VISUALIZÇÃO quando vc esta criando o texto ele caga… somente quando posta… que da pra ver como fica… testa ae pra vc ver…</EDITADO>

não vai cara … que nem agora mandei “citar” e estou digitando esse texto… olha como ficara abaixo…

[quote=Luca]Olá

As tags precisam ser abertas e fechadas. Experimente sem clicar lá em cima. Escreva a tag na mão dentro dos colchetes e colocando a barra na tag que fecha.

[]s
Luca[/quote]

inclusive dei uma lida legal aqui:

http://www.martinfowler.com/eaaCatalog/domainModel.html

Calçado???, ta por ae :roll: vammo finalizar esse assunto!

Sim, o mesmo bean que você usa com os métodos contendo regras de negócio seria usado para persistência no banco de dados. Não há nenhum impedimento com relação a isso, a camada de persistência permanece inalterada.

Mas eu não creio que a sua dúvida seja apenas isso, então acho que não entendi muito bem o que você quis dizer. Se puder explicar melhor…

[quote=David]Sim, o mesmo bean que você usa com os métodos contendo regras de negócio seria usado para persistência no banco de dados. Não há nenhum impedimento com relação a isso, a camada de persistência permanece inalterada.

Mas eu não creio que a sua dúvida seja apenas isso, então acho que não entendi muito bem o que você quis dizer. Se puder explicar melhor…[/quote]

Fala ae velho beleza?, entao cara acho que vcc ja solucinou minha duvida inclusve fiz um filtro nas questões e vou ser direto no que ainda que me intigra… mais cara se eu estou viajando… paramos por aqui :smiley:

seguinte…

como vejo muitas pessoas usando beans “simples/burros” ao invés delas com as regras de negocio… isso nao poderia atrasar o sistema de alguma forma quando sempre for fazer esses dois fluxos:

USUARIO(JSP) => BEANXYZ(Com as regras de negocio)

BANCO => DAO => BEANXYZ(Com as regras de negocio)

ao inves de:

USUARIO(JSP) => BEANXYZ(Com as regras de negocio)

BANCO => DAO => BEANXYZ(simples/burro)

OU no famigerado BO rs.:

USUARIO(JSP) => BO => BEANXYZ(simples/burro)

BANCO => DAO => BEANXYZ(simples/burro)

veja que eu ja coloquei a ideia de se utilizar o mesmo bean como manda a “teoria”.

Agora somente minha preocupação foca na velocidade… visto que agora pelo que entendi iremos ser obrigados a executar a regra de negocio 2 vezes num sistema… ao invés de uma…
quando populamos um bean burro/simples vindo do banco sem as regras de negocio… mantendo assim… somente do USUARIO(JSP)=>BO => BEANYXZ, e ai sim passaria pelo tal do famigerado BO :shock:

entendeu minha duvida?

vlw cara

OBS: Deixando claro que nos 3 casos ficaria assim:

(1º Caso)

  • 1 Bean com regras de negocio para fazer o leva e tras…

(2º Caso)

  • 1 Bean com regras de negocio para validar os dados da tela(alem logico do JS)
  • 1 Bean simples/burro

(3º Caso)

  • 1 Bean simples burro para ser utilizado pelo leva e tras
  • 1 BO para as regras de negocio chamando o assim quando o sistema precisar validar algo… e nao usando no DAO

enquanto ao BO nao estou protegendo… mais estou ilustrando oque atualmente acontece por ai… em meus estudos ficou muito claro esse problemas… e por enquanto ainda me resta interrogacoes…

[quote=javaman00]
Agora somente minha preocupação foca na velocidade… visto que agora pelo que entendi iremos ser obrigados a executar a regra de negocio 2 vezes num sistema… ao invés de uma…
[/quote]Porque executaria a regra de negócio duas vezes? Me dá um exemplo "real’, escreve ai um código bem simples pra ver se eu consigo lhe ajudar melhor…

http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs

Nesse modelo, de quem é a responsabilidade de metodos como:

  • buscarTodosUsuariosSemGrupo();

Da classe Usuario? Mesmo que as regras desse metodo não tenham nada a ver com o objeto usuário instanciado? (já que o retorno é uma lista de vários usuários)?

É correto em OO o metodo de uma classe Usuario tratar coisas de outros usuários?

Complicando mais ainda, e quando além de buscar os usuários, a regra de negocio é responsável por dar um loop em cada um e setar um flag. Isso não é cenário para um BO? Um lugar onde se possa manipular dados e objetos do tipo Usuario, de acordo com as regras de negócio do sistema.

Ou a classe Usuario deve ser responsável por tratar outros usuários?

questions, questions…

[quote=cv]Er… a premissa da OO nao era colocar os dados e os comportamentos relacionados a eles proximos uns dos outros?

Se sim, pra que caralhos vc vai separar os dados e comportamento em VO e BO?[/quote]

Desculpe ressucitar o post, mas essa resposta do CV foi perfeita. Tenho concordado muito com o CV ultimamente… estaria eu granhando ares britanicos?

próximo quer dizer um objeto usuario ser responsavel por regras de outros objetos usuario?

setNome() no usuario é próximo

agora alterarTodosUsuariosInativos() é próximo ou invasivo?
a questão é: um Usuário tem a responsabilidade de alterar coisa dos outros?

  1. Releia os posts, ninguém falou isso que você disse.

  2. Esqueça diabos de VO, BO, etc. O que você terá são objetos que contém os dados que o representam e métodos para definir o seu comportamento. E só.

  3. Dá uma lida nesse artigo do Phillip: http://fragmental.com.br/wiki/index.php?title=Fantoches[/quote]

Excepcional artigo !!!
Uma das melhores comparações/explicações do jeitão que muitos de nós ainda trabalha “proceduralmente”. Vou imprimir e ler novamente pois ficou muito claro o exemplo.

Parabéns Phillip !

Duas dúvidas:

[list]Dentro do exemplo contido no artigo fantoches(fragmental.com.br/wiki/index.php?title=Fantoches)

Onde ficaria a chamada a um(ou mais) método(s) de persistência para persistir em banco de dados o ato de estacionar, e desocupar vaga?[/list]

[list]Chamadas vindas da persistência (como uma tela de sistema contendo uma listagem de todos os carros estacionados ou todas as vagas ocupadas) seriam uma chamada direta ao DAO da tela? Haveria uma chamada da tela a um método contido no objeto de domínio(carro ou vaga) que por sua vez chamaria a coleção de um DAO correspondente?[/list]

Grato se me tirarem essa dúvida. :?

[]'s

Ola,

Essa dúvida passa de projeto á arquitetura. Sobre arqutietura existem mais dois artigos que podem te responder:
Arquitetura de Camadas em Java EE
Desenvolvendo Sistemas OO Com Padrões de Negócio

Respondendo rapidamente: persistência é responsabilidade de outra Camada.