1
resposta

Flyweight e Enums

No exemplo da aula, usamos flyweight paraa criação de notas musicais. Quais as diferenças para uma representação das notas como enum?

1 resposta

Excelente pergunta. Uma vantagem que o Flyweight pode apresentar em cima de Enums é se você vai compô-las.

Como na String: a String "Paulo" está contida em "São Paulo". Com os ponteiros certos voce vai economizar muitos bytes. É inclusive como a classe String funciona se você invoca um substring.

Caso você não precise disso, realmente os comportamentos serão muito próximos. Se você puder enumerar todos os seus elementos, também é uma boa ideia usar enum, pois nesse caso você pode simular um Flyweight usando a classe EnumSet, que utiliza pouquissima memória internamente.