Actividad 2: Crear la cache de imagenes
Descripción
En esta actividad vamos a crear una caché de imágenes para que las imágenes que se descarguen de internet se guarden en la caché y no se descarguen cada vez que se necesiten.
Instrucciones
Crear un paquete llamado
cachedentro deorg.brick_breaker.Dentro del paquete
cachecrear una clase llamadaImageCache.Haz que la clase tenga los siguientes atributos:
private final HashMap<String, BufferedImage> cache = new HashMap<>();private static final SpriteCache INSTANCE = new SpriteCache();
Haz que la clase tenga un constructor privado.
Haz que la clase tenga un método estático llamado
getInstanceque retorne la instancia de la clase.Este método debe ser sincronizado para evitar problemas de concurrencia.
Deberás utilizar el patrón de diseño Singleton para garantizar que solo se cree una instancia de la clase.
- public static ImageCache getInstance() { return INSTANCE; }
Haz que la clase tenga un método llamado
getImageque reciba unStringcon el nombre de la imagen y retorne unBufferedImagecon la imagen. En caso de que la imagen no exista en la caché, se deberá retornarnull.Puedes utilizar el método
getOrDefaultde la claseHashMappara retornar la imagen onullen caso de que no exista.- public BufferedImage getImage(String name) { return cache.getOrDefault(name, null); }
Haz que la clase tenga un método llamado
addImageque reciba unStringcon el nombre de la imagen y unBufferedImagecon la imagen y la agregue a la caché, en caso de que no exista.Puedes utilizar el método
putIfAbsentde la claseHashMappara agregar la imagen a la caché solo si no existe.- public void addImage(String name, BufferedImage image) { cache.putIfAbsent(name, image); }
Pruebas
Para probar que la caché de imágenes funciona correctamente, deberás hacer lo siguiente:
Descarga la imagen de un gato desde internet y muévela a la carpeta
imagesde tu proyecto.Para crear el directorio
imagesen tu proyecto, haz clic derecho en el proyecto, seleccionaNew>Directoryy escribeimages.
Crea una clase llamada
Mainen el paqueteorg.brick_breakery escribe el siguiente código:
Ejecuta la clase Main y verífica que la imagen del gato se haya cargado correctamente.
Criterios de evaluación
Criterio | Descripción | Puntaje |
|---|---|---|
Portada | La portada contiene el nombre de los integrantes del equipo y el nombre de la actividad | 5% |
Clase | La clase | 30% |
Pruebas | El código de prueba carga la imagen del gato correctamente | 65% |
Total | 100% |
Fecha de entrega
La fecha de entrega es el día 19 de marzo de 2025 a las 11:59 p.m.
Actividades enviadas después de la fecha y hora límite serán evaluadas sobre el 70% de la calificación total.