gpt4 book ai didi

java - 如何对这两个耦合类应用解耦

转载 作者:行者123 更新时间:2023-12-01 05:20:50 25 4
gpt4 key购买 nike

我有两门课:

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/

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