DEV Community

Elías Canales
Elías Canales

Posted on

No uses interfaces para constantes

El llamado como “constant interface pattern” es un antipatrón, que consiste en usar una interfaz de Java solo para definir constantes.
Esta forma de usar la interfaz va en contra del propio propósito original.

Desde mi punto de vista, se ha usado a veces la interfaz para definir constantes porque es una forma muy sencilla de tener un lugar donde centralizarlas, y además no puede ser instanciada.

Sin embargo, no es correcto hacerlo, porque el objetivo de las interfaces es definir tipos y, al usarla solo para definir constantes, no estas definiendo ningún tipo.
Además, alguien podría implementar esa interfaz, lo que podría generar problemas innecesarios en el futuro.

Puedes crear una clase no instanciable, que actuaría como una clase de utilidad, donde definir las constantes.

Pero antes de hacer eso, piensa lo siguiente:

  1. Si las constantes pertenecen a un grupo, podrías crear una enumeración (enum)
  2. Si las constantes están muy ligadas a una clase concreta, es mejor definirlas en esa clase

Si ninguna de las opciones anteriores satisface tus necesidades, opta por una clase no instanciable.

Referencias
Joshua Bloch, Effective Java (3ª edición), Addison-Wesley, 2018.

Top comments (0)