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