Las constantes cambiantes requieren la reconstrucción de la aplicación en la mayoría de los casos. Dicho de otra manera, las constantes siguen siendo constantes cuando alguien no tiene acceso al código.
Por lo tanto, cualquier información que el usuario final deba proporcionar (y deba cambiar) debe ir a los archivos de configuración. La mayoría de los otros necesitan ir bajo constantes. Sin embargo, debe haber valores predeterminados legítimos o manejo de excepciones de error si los archivos de configuración están rotos.
Elementos que no forman parte de la abstracción del objeto (es decir, si es probable que las constantes que no están destinadas a ser modificadas por objetos externos (de llamada) estén ocultas y esencialmente signifiquen que serían mejores como constantes privadas que los archivos de configuración.
Cuando hay muchos elementos de configuración que pertenecen a diferentes objetos, no relacionados entre sí, y cuando tantos objetos necesitan extraer archivos de configuración (iguales o propios), es probable que estas cosas hayan sido constantes.