Aplicar el patrón Singleton en QuestionManager para centralizar la gestión de preguntas
Descripción
Actualmente, la clase QuestionManager puede ser instanciada múltiples veces, aunque el juego únicamente requiere una instancia para administrar el conjunto de preguntas. Esto genera un uso innecesario de recursos y dificulta la centralización de la lógica encargada de gestionar las preguntas.
Comportamiento actual
La clase Board crea y utiliza instancias de QuestionManager para obtener las preguntas del juego. Sin embargo, no existe ningún mecanismo que impida la creación de nuevas instancias, a pesar de que todas cumplen la misma función.
Propuesta de solución
Se propone aplicar el patrón de diseño Singleton, de modo que QuestionManager mantenga una única instancia compartida durante toda la ejecución del juego. Para ello, la clase debería:
- Declarar un atributo estático
instance.
- Hacer privado el constructor de
QuestionManager.
- Incorporar un método estático
getInstance() que devuelva siempre la misma instancia.
- Reemplazar las creaciones directas (
new QuestionManager()) por llamadas a QuestionManager.getInstance().
Beneficios
- Evita la creación innecesaria de múltiples instancias de
QuestionManager.
- Centraliza la gestión de las preguntas del juego.
- Reduce el consumo de recursos.
- Garantiza un comportamiento consistente durante toda la ejecución.
- Mejora la mantenibilidad y facilita futuras modificaciones relacionadas con la gestión de preguntas.
UML aplicando Singleton

Aplicar el patrón Singleton en
QuestionManagerpara centralizar la gestión de preguntasDescripción
Actualmente, la clase
QuestionManagerpuede ser instanciada múltiples veces, aunque el juego únicamente requiere una instancia para administrar el conjunto de preguntas. Esto genera un uso innecesario de recursos y dificulta la centralización de la lógica encargada de gestionar las preguntas.Comportamiento actual
La clase
Boardcrea y utiliza instancias deQuestionManagerpara obtener las preguntas del juego. Sin embargo, no existe ningún mecanismo que impida la creación de nuevas instancias, a pesar de que todas cumplen la misma función.Propuesta de solución
Se propone aplicar el patrón de diseño Singleton, de modo que
QuestionManagermantenga una única instancia compartida durante toda la ejecución del juego. Para ello, la clase debería:instance.QuestionManager.getInstance()que devuelva siempre la misma instancia.new QuestionManager()) por llamadas aQuestionManager.getInstance().Beneficios
QuestionManager.UML aplicando Singleton