Я работаю над академическим проектом, который имитирует довольно большую процедуру очередей в Java. Ядро симулятора лежит в одном пакете, где существует 8 классов, каждый из которых реализует одну концепцию. Каждый класс в проекте следует SRP. Эти классы инкапсулируют поведение симулятора и соединяют все остальные классы в проекте.
Проблема, которая возникла, заключается в том, что большинство из этих 8 классов, как я думаю, логично, тесно связаны, и каждый из них должен иметь практические знания о каждом другом классе в этом пакете, чтобы иметь возможность вызывать из него методы при необходимости. Приложению требуется только один экземпляр каждого класса, поэтому может быть лучше создать статические поля для каждого класса в новом классе и использовать его, чтобы сделать вызовы - вместо сохранения ссылки в каждом классе для каждого другого класса в пакете (который я я уверен, что это неправильно) -, но считается ли это правильным дизайнерским решением? или есть шаблон дизайна, который лучше соответствует моим потребностям?