Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        3年前关闭。
                                                                                            
                
        
在同一个Java包中的类之间具有循环依赖关系是不好的做法吗?

如果没有的话,我希望在这样的地方引用一个指南。

最佳答案

就其本身而言,循环依赖关系不是问题。但是,他们指出的-紧密耦合-通常可能是一个问题。本质上,通过紧密耦合两个类,您接受的是一个类的更改很可能导致另一个类的更改。如果这两个类具有不同的职责,那么这可能是一个问题-实际上,通过紧密地将它们耦合在一起,您是在说他们共同承担职责,因此违反了Single Responsibility Principle

如果您在同一个程序包中的两个类之间有循环依赖关系,那么有一些直接的问题需要回答:


为什么不将它们合并为一个类?
为什么不让一个成为另一个的内在阶级呢?
为什么不通过明智地使用接口将它们分离?
还有另一种更有意义的课堂设计吗?


紧密耦合的课程之间的距离越远,这些以及其他问题的紧迫性就越大。部分是关于类在包方面的接近程度-与在相同工件中相同软件包中的同一软件包中相同的工件中的相同软件包内的关注相比,该问题更少。但是,如果它们的类位于不同的语言环境(即jars)中,但位于同一包中,则也不应紧密耦合,因为这可能导致客户端无法独立升级库依赖版本。

要获得有关该主题的“良好”参考,您可能会比鲍勃·马丁(Bob Martin)的书《敏捷软件开发》做得更好。

07-24 09:38
查看更多