Я бы разделил его на dao для отдела и еще один для Employee. Я думаю, что красный флаг: что бы вы назвали объединенным дао?
Если явное и интуитивно понятное имя не возникает в вашем уме сразу, это потенциальный запах кода. И если имя не выпрыгивает на вас, это наверняка смущает других программистов, которые смотрят на ваш код. Зачем складывать две вещи вместе, которые совершенно разные?
Некоторые рекомендации:
Если бы работник и подрядчик, например, я мог бы дать немного больше веры в направлении их объединения в общий, но даже тогда, это несколько вероятно, я буду держать их отдельно если у меня не было сильной причины не разлучать их.
Если ваш проект начинает получать огромные суммы с 15 или 20 DAO, вы можете в конечном итоге решить, пойти в один DAO, но это решение вы можете сделать вниз по течению. Тогда, возможно, вы могли бы сделать DAO HumanResources или что-то в этом роде. Это в основном только для предотвращения переполнения проводки.
Существует очень мало недостатка в отделении Департамента и Сотрудника, и, возможно, в некоторой степени существенный выигрыш в ясности и простоте поддержания вашего кода. И не сложно их комбинировать в будущем, если у вас есть все основания.
Это мой прием.
Если у двух классов нет отношений, было бы очевидно использовать два отдельных DAO. Я использую Hibernate для java-класса для сопоставления таблицы базы данных и имеет отношения «один-ко-многим», поэтому мне было интересно, есть ли какие-либо преимущества для объединения двух DAO вместе. –