Bonjour,
Je poste cette question pour trancher une discussion que j'ai avec mes collègues sur les méthodes et donc le rôle d'une classe DAO.
Tout d'abord un point pour parler des mêmes choses. Une classe DAO, dans la couche DAO, permet à la couche métier de fournir un accès au données, qui sont stockés généralement dans une BD. On trouve les méthodes classiques CRUD(créer, rechercher, MAJ, effacer). Et voici un exemple : une classe modèle User qui contient les informations suivantes :
- User(identité, login, date de création, date de dernière connexion, boolean:désactivé, etc.. )
- une classe UserDAO(create, update, delete, retrieve) qui accède à la classe précédente.
Dans notre conception, nous avons besoin d'informations concernant les utilisateurs comme par exemple :
1) compter le nombre d'utilisateur
2) la dernière date de connexion pour un utilisateur
3) le nombre d'utilisateurs désactivés
4) la liste des utilisateur dont l'identité commence par une lettre donnée
5) le temps écoulé depuis la date actuelle et la date de dernière connexion
6) le nombre d'utilisateur créé pendant une année donnée
7) le nombre d'utilisateur crée pendant une période donnée
Maintenant le problème : certains collègues soutiennent que les méthodes permettant de réaliser les points 1 à 5 ne sont pas du ressort de UserDAO, qu'un DAO doit contenir que les méthodes CRUD et à la limite une méthode count() et qu'il faut faire une classe séparée de genre UserStatistiques mais toujours dans la couche DAO
D'autre soutiennent que ces méthodes relèvent d'une classe UserDAO, sauf peut être la 5 qui serait du métier en récupérant par le UserDAO la date de dernière connexion, la couche métier réalisant le calcul avec la date actuelle.
Qu'en pensez vous ?
Merci beaucoup pour vos avis
Partager