En la pregunta What is an efficient way to implement a singleton pattern in Java?, la respuesta con la mayoría de los upvotes dice que se debe usar un Enum para implementar un singleton.Tratando con Singletons que tienen que subclase
Eso está bien y entiendo los argumentos, respectivamente, las ventajas del idioma.
Tengo, sin embargo, un conjunto de clases que defino singleton pero que necesitan extender otras clases, esto no es posible con el enfoque enum, ya que las enumeraciones no pueden crear la subclase.
Joshua Bloch dice en sus diapositivas:
- Pero falta una cosa, no puede extender un tipo de enumeración
- En la mayoría de los casos, usted no debe
- Uno uso convincente códigos de operación de casos
En la mayoría de los casos, usted no debe: ¿alguien podría explicar eso? He implementado varios servlets y extienden HttpServlet
, ¿por qué estos no deberían ser simples? Solo quiero una instancia de ellos en mi aplicación.
¿Podría explicar por qué quiere un servlet singleton (cuáles son las limitaciones que llevaron a esta elección)? – Romski
@Romski La aplicación solo necesita una instancia de este servlet. – Mahoni
enum puede implementar interfaces. Con la delegación, esto significa que solo tiene una instancia que usa la funcionalidad definida en otra clase. –