gpt4 book ai didi

java - 存储库模式 : Can a repository use other repositories?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:38 27 4
gpt4 key购买 nike

假设我有一个 TeacherRepository,需要根据下面的代码使用 CourseRepository。 Teacher 和 Course 形成多对多的关系。教师和类(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);
}
}

最佳答案

我不认为处理类(class)是 TeacherRepository 的任务。恕我直言,最好在单独的类(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);

关于java - 存储库模式 : Can a repository use other repositories?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009416/

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