Skip to content

Sugerencia uso de Singleton #13

Description

@DavoLS-24

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

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions