Chu*_*ski 5 java repository-pattern
假设我有一个 TeacherRepository,它需要根据下面的代码使用 CourseRepository。教师和课程形成多对多的关系。教师和课程不形成聚合。你会认为这种模式的正确使用吗?
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我不认为TeacherRepository处理课程是 的任务。恕我直言,最好在单独的课程中处理这个问题。最好为每个类保持单一职责。
但是,如果您绝对想将此功能添加到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);
Run Code Online (Sandbox Code Playgroud)