我有两节课:
public class CourseModule {
// attributes...
List<Course> courses;
public void addCourse() { ... }
}
public class Course {
// attributes...
CourseModule module;
}
的属性Course
不足以唯一地标识一个对象,课程模块总是需要的,对于附加信息也是如此。ACourseModule
由差异组成Courses
。
我不喜欢这里的循环依赖,感觉不对。现在我正在考虑以下内容,而不是为每个方法添加课程并CourseModule
手动设置引用,我可以使用构造函数自动执行此过程:
public Course(...,...,...., CourseModule module) {
this.module = module;
module.courses.add(this);
}
但同样,这里还有另一个大问题:在 Brian Goetz Java Concurrency in Practice 中说:不要让this
引用逃脱构造函数
那么这里的最佳实践是什么?我认为这是一个非常简单的例子,它可能会产生一个示例解决方案。