Flyweight Pattern in Python
Aprenda Flyweight Pattern in Python com um exemplo prático que pode editar e executar online.
O que é Flyweight Pattern?
Aprenda Flyweight Pattern in Python com um exemplo prático que pode editar e executar online.
Quando usar?
- Resolver problemas recorrentes de design de objetos com estruturas comprovadas.
- Desacoplar responsabilidades para facilitar a extensão e os testes do código.
- Usar um vocabulário de design comum ao discutir arquitetura com a equipe.
Código de exemplo
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)
Saída esperada
True
A
Como funciona
Este exemplo demonstra Flyweight Pattern in Python. Altere os valores de entrada para explorar o código.
Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.
Exercícios práticos
Altere as entradas e teste casos de borda antes de usar conjuntos de dados maiores.
- Substitua o domínio do exemplo preservando a estrutura do padrão.
- Compare o padrão com uma implementação mais simples e explique as diferenças.
- Escreva testes para cada participante antes de adicionar outra implementação.