Uma questão arquitetural

Pessoal, aqui na empresa que trabalho nós compramos um sistema em java de uma outra empresa, e junto com esse sistema veio uma API desenvolvida pelos próprios empregados da outra empresa… essa API é para persistencia e tals…

dai na API os facades acessam as DAOs… mas com um detalhe: facades e DAOs estao em pacotes diferentes, OU SEJA, todos os métodos da DAO estao public

então eu pergunto, se a função do facade é servir como “fachada” entre as actions (o sistema usa struts1) e as DAOs… entao por que fazer DAOs em pacotes separados dos facades e deixá-los com metodos public???
senao o engraçadinho querendo ganhar tempo simplesmente faz um acesso nas DAOs partindo dos proprios actions!!

o correto nao seria DAOs e facades no mesmo pacote com os métodos dos facades como public e DAOs como protected??

vlw

O objetivo do padrão facade é simplificar a interface com toda a hierarquia de classes,
retirando toda a complexidade de se conhecer todas as classes.
Facade não tem por objetivo eliminar o acesso direto à um determinado nodo da estrutura.

Sem contar o fato de que juntar classes DAO e classes Facade dentro do mesmo pacote tornariam o pacote menos coeso.

então os caras nomearam errado essa camada entre as actions e a DAOs…
qual seria o nome correto? se é que pode existir uma camada a mais nesse caso…