Skip to content

Implementación de patrón Strategy para delegación dinámica de exportación de archivos #6

Description

@Omarplay11

Problema identificado:
Las clases de la capa de acceso a datos (como CalzadoGestionDao) contenían múltiples métodos monolíticos dedicados exclusivamente a la exportación de archivos (exportarTXT, exportarXLSX, exportarPDF). Esta arquitectura mezclaba responsabilidades puras de base de datos con la lógica de generación de documentos, violando el Principio de Responsabilidad Única (SRP).

Solución propuesta e implementada:
Se implementó el patrón de diseño de comportamiento Strategy para desacoplar totalmente la exportación de archivos de la lógica de persistencia de datos.

Se extrajo la lógica de generación de archivos y se eliminaron dichos métodos de los DAOs.

Se creó la interfaz IExportStrategy para establecer un contrato común de exportación.

Se crearon clases concretas e independientes para cada formato específico (EstrategiaExportarTxt, EstrategiaExportarExcel y EstrategiaExportarPDF).

Consecuencias e implicaciones del rediseño:

Se cumple rigurosamente con el principio Abierto/Cerrado. El sistema ahora es extensible: si en el futuro se necesita agregar un nuevo tipo de reporte (como CSV o XML), basta con crear una nueva clase que implemente la interfaz, garantizando que el código original del DAO se mantenga intacto y libre de errores inducidos.

Aumenta ligeramente la cantidad de clases en el directorio del proyecto y requiere que el cliente (la Vista) conozca y configure el Contexto con la estrategia adecuada antes de solicitar la exportación.

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