Je le séparerais avec un dao pour le département et un autre pour l'employé. Je pense que le drapeau rouge est : comment appelleriez-vous le dao combiné ?
Si un nom clair et intuitif ne vous vient pas immédiatement à l'esprit, il s'agit d'une odeur de code potentielle. Et si le nom ne vous saute pas aux yeux, il confondra sûrement les autres programmeurs qui regardent votre code. Pourquoi coller ensemble deux choses qui sont tout à fait distinctes ?
Quelques lignes directrices :
-
S'il s'agissait d'Employé et d'Entrepreneur, par exemple, je pourrais accorder un peu plus de crédit à leur combinaison en un générique, mais même dans ce cas, il est assez probable que je les garderais séparés, à moins d'avoir une forte raison de ne pas les séparer.
-
Si votre projet commence à devenir énorme avec 15 ou 20 DAO, vous pourriez finir par décider d'aller vers une seule DAO, mais c'est une décision que vous pouvez prendre en aval. Vous pourriez alors créer un DAO Ressources Humaines ou quelque chose comme ça. C'est principalement pour éviter un câblage surabondant.
Il y a très peu d'inconvénients à séparer Département et Employé, et potentiellement un gain assez significatif en clarté et en facilité de maintenance de votre code. Et il n'est pas très difficile de les combiner à l'avenir si vous avez une bonne raison de le faire.
C'est mon avis.