2013-10-30 21 views
0

我有一个类,Thing,它有很多变量。我也有一个课程,FileHandler,它将数据记录到日志文件中。循环依赖:为什么这些类不可耦合

FileHandler特定于实例化Thing并需要打印几个实例变量Thing。所以,Thing被导入到FileHandler

还有另外一类OtherThing,它还需要Filehadler。遗憾的是,由于ThingOtherThing性质的具体原因,Thing进口OtherThing。这意味着FileHandler进口ThingThing进口OtherThing,进而进口FileHandler

我似乎无法将这些拉开。我将根据评论添加更多内容。是否有明显的理由让我不能在这里分开我的课程?这似乎是由于有三个班级需要共同数据这一事实。

+0

这是一个问题吗? – Darkhogg

+1

请显示'Thing','OtherThing'和'FileHandler'的相关代码。从设计的角度来看,这个问题可能是语言不可知的,但通过一个具体的例子可以更容易地提供建议。 – chepner

+1

能够看到代码的相关部分可能有些用处...... – twalberg

回答

1

根据这一措辞......

“在计算机科学中的所有问题都可以通过间接的另一个层面......除了间接的层次过多的问题得到解决。” [大卫惠勒]

...我会建议添加一个接口。不知道确切的代码很难决定。也许你会尝试引入IThing或IFileHandler。

+0

我通过创建一个包含公共字段的新类来解决此问题。现在Thing和OtherThing和Filehandler调用这个新类而不是互相调用。我只需要一个更适合田野的家。 – user442920