FACADEs X DAOs X POJOs

Aê galera,

estamos adotando uma arquitetura EJB (Sessions) com POJOS para o desenvolvimento do sistema. As setas representam dependências diretas entre as camadas:

FACADE (Session Bean) -> DAO
FACADE (Session Bean) -> POJO
POJO -> DAO

Acesso o DAO de dentro do FACADE para atividades que criam objetos como insert e select, como num FACTORY. Outra solução seria colocar estes métodos de criação e busca como estáticos dentro POJO. Dessa maneira ficaria assim:

FACADE (Session Bean) -> POJO
POJO -> DAO

Qual delas é melhor!?

Fallow

PS: por favor, façam críticas construtivas.

Opa,

A regra é baixo acoplamento entre camadas, então segue esta outra idéia… porque deixar seus sessions beans dependentes de outra camada? De certa forma esta dependência existirá mas não tão explicitamente.

:okok:

Como assim? Vc prefere a 2ª alternativa, colocando o acesso ao DAO dentro do POJO?

Parece que há uma terceira alternativa, e estou quase convencido de que é a melhor…

http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=11&t=012013

A sugestão foi a de retirar TODOS os métodos de acesso ao repositório do POJO e colocá-los no DAO (na primeira alternativa eu só retiraria os de INSERT e SELECT). Dessa maneira, se eu quisesse fazer um UPDATE ou um DELETE de um POJO por exemplo, eu passaria este POJO do FACADE para o DAO e o DAO encarregaria-se disto.

As dependências de acesso ficariam restritas a:

FACADE -> DAO
FACADE -> POJO

Artigo muito bom que confirma a 3ª hipótese, retoma a discussão EJBs X POJOs e tb fala como eliminar os DTOs…

http://www.developer.com/java/ejb/article.php/3590731