Hasta cierto punto es una cuestión de gusto. Para mí es bien siempre y cuando:
- A mantener la final de campo, como lo han hecho
- Usted asegúrese de que el objeto referenciado es inmutable y seguro para subprocesos
estática tiende a hacer que la escritura buenas pruebas más difíciles. Si alguna vez encuentra que desea comenzar a modificar el estado estático, entonces probablemente deba volver a mirar el diseño.
Considere la posibilidad de mirar Google Guice y es muy agradable Singleton implementation.
Por supuesto, si su aplicación es un experimento de una sola línea de 10 líneas, entonces esto importa mucho menos.
Tenga en cuenta que en su ejemplo, puede simplificar a:
private static final ApiKey API_KEY = new ApiKey();
eso no siempre es posible, sin embargo. ¿Quizás ha omitido algún código de inicialización más complejo? En cuyo caso, Guice volvería a merecer la pena.
comentaré porque no hay respuesta "negro o blanco" a su pregunta. Personalmente, no encuentro el acceso estático un buen amigo de los programadores.La inyección de dependencia es una alternativa muy buena que también ayuda mucho cuando se trata de pruebas. –
He visto un código donde se inician nuevos hilos en el bloque estático. :) Fue muy malo. –