Я разрабатываю библиотеку, которую другой программист будет импортировать и использовать для своих целей.
Я не понимаю цели модификатора доступа Java.
Проблема в том, что у меня есть классы ниже
ClassA
в пакете org.mylibrary
ClassB
в пакете org.mylibrary.internal
ClassA необходимо разрешить ClassB, поэтому ClassB должен быть публичным классом.
Однако, с точки зрения пользователя библиотеки, я не предполагаю, что ClassB будет видимым вне моей библиотеки. Потому что этого не должно быть и не должно быть инициировано пользователем.
Я думаю о перемещении ClassB в пакет org.mylibrary и о том, чтобы сделать его закрытым для пакета классом.
Если я перенесу его в тот же пакет, это будет беспорядочно и сложно организовать, потому что у меня много классов в этом сценарии, поэтому в одном большом пакете будет много файлов .java.
Обычно я помещаю классы в пакеты, сгруппированные по категориям или слоям, и я думаю, что это легко организовать.
Как мне это сделать? Как люди справляются с этой проблемой?