在同一Java包中的类之间存在循环依赖是不好的做法吗?
如果没有,我希望在某个地方有一个信誉良好的参考指南。
答案 0 :(得分:3)
就其本身而言,循环依赖不是问题。然而,他们指出的 - 紧耦合 - 通常可能是一个问题。从本质上讲,通过紧密耦合两个类,您可以接受一个类中的更改可能导致另一个类的更改。如果两个班级有不同的职责,这可能是一个问题 - 实际上,通过紧密联系他们,他们说他们分担责任,因此违反了Single Responsibility Principle。
如果您在同一个软件包中的两个类之间存在循环依赖关系,那么可以立即回答一些问题:
为什么不把它们合并成一个班级?
为什么不让一个人成为另一个人的内心阶层?
为什么不通过明智地使用接口来解耦它们?
还有另一种更有意义的课程设计吗?
紧密耦合的课程越远,这些问题以及其他问题的紧迫性就越大。关于类在包中的接近程度的部分原因 - 在同一工件中的同一个包中,与同一工件中的不同包之间的关系不大。然而,如果他们的类在不同的aritfacts(即jar)中,但在同一个包中,那么它们也不应该紧密耦合 - 因为这可能导致客户端无法独立升级库依赖版本。
对于一个声誉良好的'关于这个问题的参考,你可能比鲍勃·马丁的书#34;敏捷软件开发"更糟糕。