【发布时间】:2015-09-29 08:33:45
【问题描述】:
将一个 DAO 的某些部分委托给另一个 DAO 是否更好,这样它会更具可读性和紧凑性?以及更少的重复代码?
例子
class StudentDAOImpl implements StudentDAO {
public Student findById(int studentId) {
// some code here to get student
}
}
class SemesterEnrollmentImpl implements SemesterEnrollmentDAO {
public SemesterEnrollment findSemesterEnrollmentByStudent(int studentId) {
// delegating finding of student to StudentDAO
StudentDAO studentDao = new StudentDaoImpl();
Student student = studentDAO.findById(studentId);
// code to get SemesterEnrollment using student instance
}
}
因为我读到 DAO 应该:
- N + 1 问题。
- 尽量减少 SQL 调用的次数。
- DAO 不应委托给其他 DAO。
这是否意味着我必须在每个 DAO 中重复相同的过程,而不是仅仅为了使其独立于其他 DAO 而进行委派?
【问题讨论】:
标签: java database design-patterns dao