Intellij 依赖查看器和包循环依赖
Intellij dependency viewer and package cyclic dependency
在我的整个编程生涯中,我一直认为循环依赖如下:
给定
- 包 1
- 包2
- 子包 2
- 包 3
IF
- Class 来自 package1 引用 class 来自 package2
- Class 来自 package2 引用 class 来自 package3
- Class 来自 package3 引用 class 来自 package1
然后
项目包含循环依赖 package1 > package2 > package3 > package1。
当 Intellij 的依赖项查看器告诉我时,这是一个非常大的惊喜:
IF
- Class 来自 package1 引用 class 来自 package2
- Class from subpackage2 references class from package3
- Class 来自 package3 引用 class 来自 package1
然后
项目包含循环依赖 package1 > package2 > package3 > package1.
任何人都可以向我解释一下循环依赖的严格定义是什么,为什么 Intellij 会显示如此奇怪的结果?谢谢。
依赖是可传递的,所以由于依赖subpackage2,subpackage2又依赖package3,package2本身又依赖package3,因此形成了与示例1完全相同的图。我更惊讶其他工具不要把它看成一个圆圈,因为这里的 IntelliJ 是正确的。
在我的整个编程生涯中,我一直认为循环依赖如下:
给定
- 包 1
- 包2
- 子包 2
- 包 3
IF
- Class 来自 package1 引用 class 来自 package2
- Class 来自 package2 引用 class 来自 package3
- Class 来自 package3 引用 class 来自 package1
然后
项目包含循环依赖 package1 > package2 > package3 > package1。
当 Intellij 的依赖项查看器告诉我时,这是一个非常大的惊喜:
IF
- Class 来自 package1 引用 class 来自 package2
- Class from subpackage2 references class from package3
- Class 来自 package3 引用 class 来自 package1
然后
项目包含循环依赖 package1 > package2 > package3 > package1.
任何人都可以向我解释一下循环依赖的严格定义是什么,为什么 Intellij 会显示如此奇怪的结果?谢谢。
依赖是可传递的,所以由于依赖subpackage2,subpackage2又依赖package3,package2本身又依赖package3,因此形成了与示例1完全相同的图。我更惊讶其他工具不要把它看成一个圆圈,因为这里的 IntelliJ 是正确的。