循环依赖被认为是不好的设计吗?

Joh*_*ick 6 oop circular-dependency

在我的工作中(90%是Java,但我确信这个问题适用于其他语言)我经常创建两个彼此"了解"的类.更具体地说,A类导入B,B类导入A类,两者都有另一种类型的成员或局部变量.

这被认为是糟糕的设计吗?如果你愿意,反模式?

NPE*_*NPE 5

这是我的看法:

  • 如果这两个类属于同一个逻辑模块,那么它可能很好(当然仍然是判断调用,有很多灰色区域).
  • 如果这两个类属于不同的模块,则不太好.这会在模块之间创建循环依赖关系.我尽可能地避免这种情况,更喜欢清晰的层次结构.