1

一般的に言えば、クラスの依存関係をそのインポートに合わせるように努力する必要がありますか?

たとえば、一般的に次のようなことを避ける必要があります。

Bar.java:

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

public Bar(Foo foo) {...}

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

Baz.java:

import com.somepackage.Bar;

public Baz(Bar bar) {...}

//etc...

基本的に、Bar.java はそれを依存関係として持っているものをインポート/使用/動作しますが、これは奇妙に思えます。ただし、依存関係を使用するクラスが必ずしも何らかの臭いを構成するかどうかはわかりません (つまり、コンパイル時の依存関係が実行時の依存関係と一致しないため、何らかのリファクタリングを行う必要があることを示唆しています...)

4

2 に答える 2

1

これはデザインの匂いだと思います。循環依存を解決する3番目のクラスを抽出できますか?依存関係の一方向をインターフェースで切り離す必要がありますか?

クラスが互いにどのように依存しているかの詳細がなければ、より具体的にすることは難しいでしょう。

于 2012-11-17T12:26:53.250 に答える
-1

これは循環依存の例であり、Javaでは許可されています。

Javaクラスの循環依存を参照してください

デザイン的には、パッケージ内にこの種の依存関係があっても大丈夫だと思います。

于 2012-11-17T12:05:30.237 に答える