Flyweight Pattern in Python
Aprende Flyweight Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.
¿Qué es Flyweight Pattern?
Aprende Flyweight Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.
¿Cuándo se utiliza?
- Resolver problemas recurrentes de diseño de objetos con estructuras probadas.
- Desacoplar responsabilidades para facilitar la extensión y las pruebas del código.
- Usar un vocabulario de diseño común al hablar de arquitectura con el equipo.
Código de ejemplo
main.py
class Glyph:
# Flyweight: share repeated intrinsic state between many uses.
def __init__(self, character): self.character = character
class GlyphFactory:
_cache = {}
def get(self, character):
# Reuse immutable intrinsic state.
return self._cache.setdefault(character, Glyph(character))
factory = GlyphFactory()
first = factory.get("A")
second = factory.get("A")
print(first is second)
print(first.character)
Resultado esperado
True
A
Cómo funciona
Este ejemplo muestra Flyweight Pattern in Python. Cambia los valores de entrada para explorar el código.
Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.
Ejercicios prácticos
Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.
- Sustituye el dominio del ejemplo conservando la estructura del patrón.
- Compara el patrón con una implementación más sencilla y explica las ventajas y desventajas.
- Escribe pruebas para cada participante antes de añadir otra implementación.