Изменение констант требует перестройки приложения в большинстве случаев. Другими словами, константы остаются константами, когда кто-то не имеет доступа к коду.
Таким образом, любая информация, которую конечный пользователь должен предоставить (и должен изменить), должна находиться в файлах конфигурации. Большинству других нужно идти по постоянным. Однако должны быть допустимые значения по умолчанию или обработка исключений ошибок, если файлы конфигурации повреждены.
Элементы, которые не являются частью абстракции объекта (т. Е. Если константы, которые не предназначены для изменения внешними (вызывающими) объектами, скорее всего, будут скрыты и, по сути, означают, что они будут лучше в качестве частных констант, чем конфигурационные файлы.
Когда есть много элементов конфигурации, которые относятся к разным объектам, не связанным друг с другом, и когда такому количеству объектов необходимо извлечь (одинаковые или свои) файлы конфигурации, есть вероятность, что эти вещи должны быть константами.