Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:
Ver libroFlyweight
Patrón de diseño estructuralFlyweight es un patrón que centra su atención en la construcción de objetos ligeros, mediante la abstracción de las partes reutilizables que pueden ser compartidas con otros objetos, esto con el fin de que en lugar de crear objetos cada vez que sea requerido, podamos reutilizar objetos creados por otras instancias logrando con ello reducir en gran medida la capacidad de memoria requerida por la aplicación.
Este patrón es utilizado cuando la optimización de los recursos es algo primordial ya que elimina la redundancia de objetos con propiedades idénticas.
Los componentes que conforman el patrón son:
- Client: Objeto que dispara la ejecución.
- FlyweightFactory: Fábrica que utilizaremos para crear los objetos Flyweight u objetos ligeros.
- Flyweight: Corresponde a los objetos que deseamos reutilizar con el fin de que nuestros objetos sean más ligeros.
- El cliente solicita al Factory la creación de un objeto Flyweight.
- El Factory antes de crear el objeto, valida si ya existe un objeto idéntico al que se le está solicitando. De ser así, regresa el objeto existente; de no existir, crea el nuevo objeto y lo almacena en caché para ser reutilizado más adelante.
- El objeto Flyweight se crea o es tomado del caché y es devuelto al cliente.
Ejemplo del mundo real
Mediante la implementación del patrón de diseño Flyweight crearemos una aplicación que administre listas de reproducción, las cuales esta conformados por canciones que son compartidas por todas las listas de reproducción. Además, las canciones tienen secciones compartidas para mejorar la cantidad de memoria utilizada.
¿Sabes la importancia de los patrones de diseño?
Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.