Skip to content

Implementación de patrón Singleton en clases DAO para lograr optimización de memoria #2

Description

@Omarplay11

Descripción de la solucion:
Problema: Actualmente, el sistema instancia mediante la palabra reservada new las 9 clases DAO de la carpeta "Controlador" (ClienteGestionDao, VentaGestionDao, CalzadoGestionDao, etc.) cada vez que se realiza una consulta a la base de datos. Esto genera un desperdicio de memoria y una sobrecarga innecesaria en el Garbage Collector, ya que se crean múltiples objetos para clases que no guardan un estado propio y cuya única función es transaccional.
Solución propuesta: Se aplicó el patrón de diseño creacional Singleton en las 9 clases DAO involucradas. Para lograrlo, se realizaron las siguientes modificaciones en el código fuente:

  1. Se cambió el nivel de acceso de los constructores predeterminados a private para bloquear instanciaciones externas.
  2. Se declaró una variable estática privada (ej. private static CalzadoGestionDao instancia;) en cada clase.
  3. Se implementó un método estático público getInstance() para garantizar que exista una única instancia global de cada DAO durante todo el ciclo de vida de la aplicación.

Consecuencias e implicaciones del rediseño:
• Se reduce drásticamente el consumo de memoria RAM. Se centraliza el acceso a las conexiones de la base de datos, mitigando riesgos de bloqueos o errores de concurrencia.
• Se introduce un estado global en la arquitectura del sistema, lo cual aumenta levemente el acoplamiento y requerirá configuraciones adicionales.

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