1

一般而言,是否应该努力使类的依赖项与其导入保持一致?

例如,通常应该避免做这样的事情:

酒吧.java:

import com.somepackage.Foo;
import com.somepackage.Baz;

public Bar(Foo foo) {...}

public void doSomething(Baz baz) {...}

巴兹.java:

import com.somepackage.Bar;

public Baz(Bar bar) {...}

//etc...

基本上, Bar.java 导入/使用/使用将它作为依赖项的东西,这看起来很奇怪。虽然,我不确定使用其依赖项的类是否一定会构成某种气味(即,编译时依赖项与运行时依赖项不一致,暗示可能应该进行一些重构......)

4

2 回答 2

1

我认为这是一种设计气味。你能提取第三个类来解决循环依赖吗?依赖的一个方向是否应该与接口解耦?

如果没有类如何相互依赖的详细信息,将很难更具体。

于 2012-11-17T12:26:53.250 回答
-1

这是一个循环依赖的例子,Java 允许这样做。

参见java 类中的循环依赖

设计方面,我觉得在包中存在这种依赖关系是可以的。

于 2012-11-17T12:05:30.237 回答