Estou em meio a um projeto cujo me informaram que o melhor era criar Classe DAO onde conteria todos os métodos de persistência de todas as classes, pois assim caso eu mudasse de banco seria mais fácil de adaptar ao novo banco.
Pois bem, assim estou criando todos os métodos na classe DAO, o problema é que a mesma está ficando muito extensa e difícil de trabalhar, oque me pergunto, porque não colocar cada método de persistência dentro de cada Classe a que ela pertença?
Minha real dúvida é: qual seria a melhor forma? além destas duas opções que eu conheço, haveria outra melhor?
Olá…se sua classe DAO está ficando extensa demais, tem coisa errada, persistir um objeto, ler, alterar e excluir são 4 operações, um método genérico pode buscar um nome, um ID, um CPF, um Endereço , não deixando sua classe DAO extensa. colocar métodos de um DAO de uma classe Entidade, por exmplo, foje dos padroes MVC ( modelo, visao, controle ), traz responsabilidades para uma classe que não é dela, alto acoplamento e um código de difícil manutenção. Se está aprendendo POO, leia sobre MVC, Genéric DAO, Interfaces, é um bom começo.
Sandro_Machado
Obrigado pela resposta Marcelo, é que até o momento possuo 17 Classes que devem ser persistidas, podendo ser aumentado caso implemente uma nova funcionalidade, então com as 4 operações já são 68 métodos, oque pra mim que não tenho muita experiencia está se tornando um tanto confuso, então pensei estar fazendo algo errado. Obrigado vou ler sobre oque citaste.
E
Error1 like
Pra cada entidade vc deve criar um Dao próprio e não tudo em um único DAO…
Victor_Dourigam1 like
Bom dia amigo, o problema que vc esta se deparando consiste em colocar todos os métodos um uma única DAO,deixando assim a classe extensa, tendo em vista às boas praticas de poo,temos que ter classes coesas ,logo aconselho vc fragmentar este DAO em outros menores e específicos para a entidade a persistir.
Ex: se eu tenho uma classe Funcionario e outra Cliente, eu crio um FuncionárioDao e um ClienteDao, assim tenho classes coesas e de única responsabilidade(no caso persistir cliente/funcionario).
Quando tiver um tempo pesquise um pouco sobre SOLID
Sandro_Machado
Obrigado a todos, vou segui vossos conselhos, ler sobre os assuntos citados, e vou criar classes individuais como FuncionárioDao e um ClienteDao.