假设我有一个TeacherRepository,需要根据以下代码使用CourseRepository。老师与 class 形成多对多的关系。教师和 class 不构成合计。您是否认为此模式的正确使用?

class TeacherRepository {

    @Inject(@Named("courseRepository"))
    private final CourseRepository courseRepository;

    public void addCourseToTeachers(String courseName) {

      Course course = courseRepository.findByName(courseName);

      for (Teacher teacher : readAll())
        teacher.addCourse(course);
    }
}

最佳答案

我认为TeacherRepository的任务不是处理 class 。恕我直言,最好在单独的类中处理此问题。最好对每个 class 都负一个责任。
更新资料
但是,如果您绝对希望将此功能添加到TeacherRepository,则可以做到这一点而无需依赖CourseRepository:

class TeacherRepository {
  public void addCourseToTeachers(Course course) {

    for (Teacher teacher : readAll())
      teacher.addCourse(course);
  }
}

...
CourseRepository courseRepository = ...;
TeacherRepository teacherRepository = ...;
...
Course course = courseRepository.findByName(courseName);

if (course != null)
  teacherRepository.addCourseToTeachers(course);

08-05 09:17