gpt4 book ai didi

java - 数据访问对象 (DAO) 是否应该委托(delegate)给其他 DAO 以提高可读性?

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:38 26 4
gpt4 key购买 nike

将一个 DAO 的某些部分委托(delegate)给另一个 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 不应委托(delegate)给其他 DAO。

这是否意味着我必须在每个 DAO 中重复相同的过程,而不是为了独立于其他 DAO 而进行委托(delegate)?

最佳答案

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

关于java - 数据访问对象 (DAO) 是否应该委托(delegate)给其他 DAO 以提高可读性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31343376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com