constantes globales
Como estado de los demás, las constantes globales no tienen la misma connotación negativa como variables globales. Las variables globales dificultan la depuración y el mantenimiento de un programa debido a modificaciones incontroladas. Las constantes globales (public static final
) no crean el mismo problema
Sin embargo, la orientación al objeto se trata de un código de enlace cercano a sus datos para mejorar la comprensibilidad y el mantenimiento. Aún debe encontrar el equilibrio correcto entre el almacenamiento de valores de configuración global en una clase global y el mantenimiento de datos cercanos al código que lo usará.
Probablemente también valga la pena recordar aquí que, debido a que el compilador puede alinear algunas constantes, si cambia un valor constante, es posible que deba recompilar y volver a implementar más que la clase que contiene las constantes.
Valores exteriorizar
También preguntaron sobre qué aplicaciones profesionales lo hacen. No es raro que esas aplicaciones creen estos tipos de valores, como rutas de archivos, externamente configurables. Depende de la probabilidad de que cambie el valor (es decir, de la probabilidad de que se mueva su aplicación o de que se use su código en otra aplicación) y de cuán conveniente o fácil es recompilar y volver a implementar el código con nuevos valores. Si elige hacer algunos valores externamente configurables, puede que quiera codificar los valores predeterminados para esos elementos en el código.
Aquí hay algunas maneras de externalizar esos valores y algunos enlaces para que pueda comenzar. Esto por supuesto no es una lista exhaustiva:
Si las "constantes" deben ser configurables, puede tener un bloque de inicialización estático que use una base de datos de Preferencias. –
Esto dificultará la modificación (recarga) de las Preferencias en tiempo de ejecución. También hará que sea imposible realizar pruebas unitarias usando diferentes preferencias. – Avi