我有两门课:
public class CourseModule {
// attributes...
List<Course> courses;
public void addCourse() { ... }
}
public class Course {
// attributes...
CourseModule module;
}
Course
的属性不足以唯一地标识一个对象,类(class)模块始终是必需的,对于附加信息也是如此。 CourseModule
由不同的类(class)
组成。
我不喜欢这里的是循环依赖,感觉不对。现在我正在考虑以下内容,我可以使用构造函数自动执行此过程,而不是为每个方法添加类(class)并手动设置 CourseModule
引用:
public Course(...,...,...., CourseModule module) {
this.module = module;
module.courses.add(this);
}
但是,这里还有另一个大问题:Brian Goetz Java Concurrency in Practice 中说:不要让 this
引用逃逸构造函数
那么这里的最佳实践是什么?我认为这是一个非常简单的示例,可能会产生示例解决方案。
最佳答案
有趣的是,我不得不做类似的事情。请参阅my question here .
我找到了this post在互联网上,这几乎与您想要做的事情完全相同,还有类(class)!我发现那里指定的解决方案并不是100%正确,我的问题的答案需要考虑。
关于java - 如何对这两个耦合类应用解耦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10460023/