J'ai récemment commencé à chercher dans Hibernate. J'ai recherché les meilleures pratiques concernant la couche des classes liées à Hibernate et une chose qui revient toujours est la structure suivante: Chaque entité a sa propre interface DAO, qui à son tour a sa propre classe d'implémentation DAO, qui à son tour a son propre service.Hibernate: Entité - Interface DAO - Classe DAO - Service (est-ce une bonne pratique?)
Est-ce considéré comme la meilleure pratique? Mon problème avec cela est que beaucoup de code est répété ou est fondamentalement le même pour chaque entité. Et franchement, 4 fichiers pour chaque modèle me semble un peu trop.
Je comprends comment les interfaces pour DAOs facilitent la modification des frameworks et des tests. Et je suis d'accord sur le fait que pour certains d'entre eux, vous avez besoin d'une séparation entre le DAO et le service (car vous voulez minimiser les fonctionnalités DAO et ajouter une logique métier supplémentaire dans le service).
Mais certaines entités n'ont besoin que d'une logique simple, et le DAO est plus que suffisant pour elles. Devraient-ils encore avoir leur propre classe de service? Et si un bon nombre d'entités auront toujours besoin de la même fonctionnalité de base? Leurs DAO ne peuvent-ils pas partager une interface commune? (au lieu d'en écrire une pour chacun d'entre eux)
En conclusion, une approche adaptative à chaque entité ne serait-elle pas mieux adaptée ou serait-ce que cela romprait la prévisibilité du code?