No exemplo da aula, usamos flyweight paraa criação de notas musicais. Quais as diferenças para uma representação das notas como enum?
No exemplo da aula, usamos flyweight paraa criação de notas musicais. Quais as diferenças para uma representação das notas como enum?
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.