The two pattern seems to achieve the same thing. What are the different use cases in real world? Thanks
Flyweight is when you have many different kinds of a single thing.
Singleton is when you have a single thing.
For example, you might use the Flyweight Pattern to represent keyboard characters. One object for a
, one for b
, etc. They are both characters, but different kinds of characters.
In contrast, you might use a singleton to represent the keyboard. There can only be one.