Хорошо, что вы задаете себе этот вопрос! Я не вижу особого внимания в последнее время.
Поскольку OdsReader
и OdsWriter
используются только внутри класса Spreadsheet
, просто переместите их в пакет spreadsheet
, удаляя public
клавишную панель видимости. Теперь они будут доступны только из классов пакета spreadsheed
.
Предложенное выше решение, которое является слишком сложным для вашего варианта использования и которое должно использовать Java 9+
модулей (или OSGi - пожалуйста, нет!), Здесь на самом деле не требуется, но Тем не менее, это шаг вперед в сохранении частных и закрытых определений даже для Reflection
нарушителей.
Как примечание, я вижу, что у вас есть пакет exceptions
.
Я никогда не рекомендую делать это, так как вам придется предоставлять конструктор этих исключений пользователям вашего кода, и они смогут создавать их экземпляры по нет веским причинам.
Переместите исключения внутри пакетов, которые их используют, и объявите конструктор как частный пакет.