この場合、「ドメイン」パッケージと「インフラストラクチャ」パッケージが相互参照しており、循環依存がある状態です。 この状態で「インフラストラクチャ」パッケージに含まれるクラスを修正すると、相互参照している「ドメイン」パッケージだけではなく、「ドメイン」パッケージに依存している「アプリケーション」パッケージと「ユーザインタフェース」パッケージにまで影響範囲が及んでしまいます。 このように、パッケージ間に循環依存がある状態というのは、望ましくない状態であると言えます。 では、パッケージの依存関係をどのようにチェックしたら良いでしょうか? クラス数/パッケージ数が少ないうちは人力でもなんとかなるかもしれませんが、ある程度の規模になるとそれは非常に困難になります。 そこでツールを活用することにします。先に挙げた本で紹介されているパッケージのメトリクス情報を計測することが出来るツール類がいくつも公開
