Leí "Effective Java" de Joshua Bloch y eliminé el 'Constant Interface anti-pattern' de nuestra aplicación. El truco consiste en utilizar una clase de utilidad no instanciable cuyo constructor es privado y definir todas las constantes como 'pública estática final'Extendiendo clase no instanciable en java
Tengo que extender esta clase de utilidad constante. Solo puedo hacer esto cuando cambio el constructor a protected.
Podría alguien sugerir una mejor manera.
public class Constants {
private Constants() {} // Prevent instantiation
public static final String MyString = "MyString";
}
public class MyConstants extends Constants {
private MyConstants() {} // Compiler error : Implicit super constructor Constants() is not visible.
public static final String MySecondString = "MySecondString";
}
¿Por qué * tiene que * extender la clase que contiene constantes? ¿Ganas mucho de eso (en lugar de simplemente tener clases separadas que no se extienden entre sí)? – Jonik
Estoy de acuerdo. Gracias – Nayn