将一个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
   }
}

因为我读到daos应该:
n+1问题。
最小化sql调用的数量。
dao不应该委托给其他dao。
这是否意味着我必须在每个dao中重复相同的过程,而不是仅仅为了让它独立于其他dao而授权?

最佳答案

一个常见的事情是使用服务调用不同的dao来注入数据。在这种情况下,这似乎更符合逻辑,因为实际上是业务逻辑,而imo最好在数据库层中尽可能少地使用它。

09-04 07:52