-
Notifications
You must be signed in to change notification settings - Fork 50
Description
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.