Глобальные константы
Как утверждают другие, глобальные константы не имеют такой же негативной коннотации, как глобальные переменные. Глобальные переменные затрудняют отладку и обслуживание программы из-за неконтролируемых изменений. Глобальные константы (public static final
) не создают той же проблемы
Тем не менее, объектная ориентация заключается в привязке кода, близкого к его данным, для повышения понятности и удобства обслуживания. Вам все еще нужно найти правильный баланс между хранением глобальных значений конфигурации в глобальном классе и хранением данных близко к коду, который будет его использовать.
Вероятно, здесь также стоит напомнить, что, поскольку компилятор может встроить некоторые константы, при изменении значения константы вам, возможно, придется перекомпилировать и повторно развернуть больше, чем просто класс, содержащий константы.
Внешние значения
Вы также спросили о том, что делают профессиональные приложения. Эти приложения нередко делают такие типы значений, как пути к файлам, внешне настраиваемыми. Это зависит от того, насколько вероятно изменение значения (т. Е. Насколько вероятно, что ваше приложение будет перемещено или ваш код будет использоваться в другом приложении) и насколько удобно или просто перекомпилировать и повторно развернуть код с новыми значениями. Если вы решите сделать некоторые значения внешне настраиваемыми, вы все равно можете закодировать значения по умолчанию для этих элементов в коде.
Вот несколько способов экстернализации этих значений и некоторые ссылки, с которых можно начать. Это, конечно, не исчерпывающий список: