Skip to content

Introducir interfaz ImageLoader para desacoplar la carga de recursos (DIP) #6

@Guroven

Description

@Guroven

Actualmente, la clase Board depende directamente de la implementación concreta ImageIcon para cargar imágenes, lo cual viola el principio de Inversión de Dependencias. Esto genera un acoplamiento fuerte con una librería específica y dificulta cambiar la forma en que se cargan los recursos.

Problema encontrado:

Board crea directamente instancias de ImageIcon.
No es posible cambiar la fuente de imágenes (por ejemplo, usar una API o caché).
Dificulta realizar pruebas unitarias al no poder simular la carga.

Impacto:

Código menos flexible y difícil de mantener.
Imposibilidad de sustituir la forma de cargar imágenes sin modificar Board.
Pérdida de modularidad.

Propuesta de solución:
Definir una interfaz ImageLoader que abstraiga la carga de imágenes:

interface ImageLoader {
Image load(String path);
}

Crear una implementación concreta FileImageLoader y pasarla como dependencia al constructor de Board. De esta manera, Board dependerá de una abstracción y no de una implementación concreta.

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