¡Poner todas las Constantes en un solo archivo es una idea terrible! Especialmente el anti-patrón uber-Constant donde todas las Constantes están en un Interface
que cada clase tiene a implement
. 10 formas de domingo terrible! ¡Esta fue una mala idea cuando la gente comenzó a hacerlo a principios de los 90 antes de Java! ¡Definitivamente es una mala idea en 2012!
Significa que está mezclando mucha información no relacionada y creando dependencias innecesarias cada vez que importe este archivo uber-Constants. Las cosas que van juntas deben estar juntas en un Enum
o al menos en el Class
que las usa como argumentos para sus métodos, de modo que cuando se cambien, sepas cómo hacer un análisis de impacto fácilmente.
Constantes de Imagine Color
mezcladas con DaysOfTheWeek
constantes mezcladas con otras constantes de dominio empresarial y habrá cientos si no miles de estas cosas en un solo archivo. ¿Cómo se puede considerar una buena idea?En cada caso no inventado, un Enum
que es un miembro public inner
de Class
es una mejor solución.
También significa que tiene un único espacio de nombres plano para tratar de crear nombres que no entren en conflicto, entonces no son obvios a qué pertenecen y cómo se deben usar. Este nunca es un ejercicio positivo.
Al diseñar y refactorización que siempre debe:
Esforzarse por una alta cohesión , esto significa mantener las cosas relacionadas tan cerca como sea posible.
Esforzarse por acoplamiento flojo esto significa que no se permite que elementos no relacionados se filtren a otros ámbitos no relacionados.
Esforzarse por auto-documentar el código de mantenimiento, docenas o cientos de declaraciones de private static final String/int
, todas juntas no se ajustan a esta definición por el estándar de nadie.
En 2012 las constantes de estilo C son una solución pobre cuando ahora tiene Enum
como herramienta, debe centrarse en convertir tantos de estos grupos de constantes en Enum
siempre que sea posible. Enum
es seguro y puede tener otros atributos y propiedades y comportamientos asociados para hacerlos intelligent
. Ese es el camino para bajar.
Una sola clase 'Constantes' suena como un antipatrón.Dividirlos según lo que signifiquen las constantes, o reemplazarlos con enumeraciones cuando corresponda. – millimoose
Como profiláctico, enganche los electrodos a sus desarrolladores que los electrocutarán con algo como LOC * 0.01V de voltaje cada vez que guarden un archivo. – millimoose
¿Qué problemas específicos estás tratando de resolver? ¿Solo el hecho de que los archivos son demasiado grandes? Si eso es todo, entonces el costo de refacturar todo no valdrá la pena. –