agodinhost:
Oi gente,
Acabei de entrar num novo projeto e ao varrer o código do mesmo me deparei com uma penca de código na camada de banco (nas classes DAO) com métodos static - absolutamente todos os métodos nas classes DAO foram declarados como static.
Bem, eu pessoalmente nunca vi ninguem usando esse formato e conversando com o desenvolvedor responsável tentando explicar o pq de não usar isso acabei ficando vendido por falta de argumentos (nunca nem me imaginei usando static num dao).
Os pontos que levantei foram:
-
Quebra qq futura implamentação de factory (visto que vou ter de criar uma interface para que cada dao implemente).
-
Apesar dos dao não terem estado (foi o motivo da nossa discussão inicial) os dao tem estado transacional ???
Algum outro motivo gente? Estou no caminho certo ou vcs tb defendem o uso de dao com métodos static ?
Woody
Primeiro a analise PREVIA esses metodos estaticos ? não ? entao está ae um belo motivo para o programador desfazer essa lambança…
Não parece meio OBVIO que DAO tem estado transacional ? se voce quiser colocar dois DAOS dentro de uma mesma transacao… pronto… seus metodos estaticos acabaram com TUDO… voce vai ter que alterar TODA A APLICACAO… ninguem ae nunca usou XA não ? nunca precisaram fazer nada de modo atomico não ? atualizar saldo em conta corrente , fazer inclusões com dependencia entre tabelas…
algo do tipo " Deletou X e Y mas se nao conseguir incluir Z entao nao faz nada !"
?!?!?!
Tem que existir algo MUITO bem explicadinho para sair utilizando classes cheias de metodos estaticos… isso torna sua programação extremamente procedural… Ninguem que utilize a programação Orientada a Objetos de forma correta pode achar a utilização de classes com metodos estaticos uma “boa pratica” ou algo “comum”
Se você já usa o pattern DAO é prq um dia pretende usar todo o poder do mesmo… com metodos estaticos… torna tudo BEM mais dificil no futuro…
Fora que a parte das fabricas é algo muito relativo… este programador já ouviu falar em GENERICS ?