私は自分の Java プロジェクトでいくつかのメトリックを実行してきましたが、どうやらパッケージ間に多くの依存関係の循環があるようです。ものをパッケージにまとめる方法を本当に知らなかったので、自分にとって意味のあることをしただけで、明らかに間違っています。
私のプロジェクトはニューラル ネットワーク フレームワークです。ニューラル ネットワークにはニューロンがあり、これらは Connections で相互に接続されています。彼らはお互いに依存する必要があります。ただし、Neuron にもさまざまな種類があるので、それらをすべて独自の「neurons」パッケージに入れることをお勧めします。明らかに Connection は Neuron ではないため、パッケージに含めるべきではありませんが、相互に参照しているため、循環依存関係があります。
これはほんの一例ですが、このような状況は他にもあります。このような状況にどのように対処しますか?
また、パッケージ階層の上位にあるパッケージのクラスは、より深いパッケージのクラスを参照することは想定されていないことを読みました。これは、パッケージ 'nn' の NeuralNetwork クラスがパッケージ 'nn.neurons' の Neuron を参照できないことを意味します。皆さんはこの原則に従っていますか?NeuralNetwork を「nn.networks」などに移動するとどうなるでしょうか。その場合、子パッケージではなく兄弟パッケージを参照します。それはより良い習慣ですか?