Skip to content

Mejora: Aplicar patrón Observer en AppHall para gestionar el ciclo de vida de los servicios #118

Description

@pepinxd28-glitch

Hola @jzyong,

Como parte de nuestro análisis de arquitectura, proponemos mejorar la clase AppHall aplicando el patrón Observer.

Situación Actual
Actualmente, el método main gestiona de forma procedural la inicialización de Redis, MongoDB y el servidor. Esto crea un acoplamiento fuerte y dificulta añadir nuevos servicios o implementar un proceso de apagado ordenado.

Solución Propuesta

Introducir una interfaz LifecycleObserver para gestionar el ciclo de vida de los servicios.

  1. Definir la interfaz LifecycleObserver con métodos onStart() y onShutdown().
  2. Hacer que los gestores (MongoManager, JedisManager, etc.) implementen esta interfaz.
  3. Registrar los gestores en AppHall y utilizar la notificación de eventos para el inicio y apagado.

public class MongoManager implements LifecycleObserver {
// ... lógica existente ...
@OverRide public void onStart() { /* crear conexión / }
@OverRide public void onShutdown() { /
cerrar conexión */ }
}

Beneficios

  • Desacoplamiento: AppHall deja de conocer los detalles de implementación de cada gestor.
  • Escalabilidad: Agregar un nuevo servicio ahora es tan simple como implementar la interfaz y registrarlo.
  • Estabilidad: Facilita la implementación de un proceso de apagado elegante, cerrando recursos correctamente.

Esperamos que esta propuesta sea de utilidad.

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