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

时间:2012-02-07 09:04:22

标签: oop circular-dependency

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

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

2 个答案:

答案 0 :(得分:5)

这是我的看法:

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

答案 1 :(得分:1)

是的,这是糟糕的设计,它与oop原则相矛盾,似乎你必须创建一个新的类或接口将包含a和b的共享参数和函数,a和b导入这个新类... < / p>