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