Я выполнял некоторые показатели на моем Java-проекте и, видимо, существует множество циклов зависимости между пакетами. Я действительно не знал, как организовать материал в пакеты, поэтому я просто сделал то, что имело для меня смысл, что, по-видимому, неверно.
Мой проект - нейронная сеть. Нейронные сети имеют нейроны, которые связаны друг с другом с помощью Connections. Они должны зависеть друг от друга. Тем не менее, существуют и другие типы нейронов, поэтому я подумал, что было бы неплохо поставить их на свой пакет "нейронов". Очевидно, что соединение не является нейроном, поэтому оно не должно быть в пакете, но поскольку они относятся друг к другу, теперь у меня есть круговая зависимость.
Это просто пример, но у меня больше таких ситуаций. Как вы справляетесь с такими ситуациями?
Кроме того, я читал, что классы в пакете выше в иерархии пакетов не должны ссылаться на классы в более глубоких пакетах. Это означало бы, что класс NeuralNetwork в пакете "nn" не может ссылаться на Neuron в пакете "nn.neurons". Вы, ребята, следуете этому принципу? И что, если я переведу NeuralNetwork в "nn.networks" или что-то еще? В этом случае это будет относиться к пакету для сиблинга, а не к ребенку. Это лучшая практика?