![](/img/trans.png)
[英]When using the Repository Pattern in Java, is it ok to use a single Manager/Controller for 3 different Repositories?
[英]Repository pattern: Can a repository use other repositories?
假設我有一個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);
}
}
我認為處理課程TeacherRepository
的任務。 恕我直言,最好在一個單獨的課堂上處理這個問題。 對每個班級保持單一責任更好。
但是,如果您絕對想要將此功能添加到TeacherRepository
,則可以在不依賴於CourseRepository
情況下執行此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);
我在項目上做了類似的事情,我沒有看到你的方法中的問題(並不一定認為它與發布答案的其他人的觀點相矛盾)。
如果我有一個聚合根(教師)作為其聚合的一部分引用另一個聚合(課程),我認為該方法是有效的,原因如下:
我沒有在這里看到這個問題,雖然我可能會在我正在開展的項目中獲得更好的理解!!
JLove
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.