When would you use the Flyweight pattern?
When you need classes to be notified of events but you don't know which classes or if you will need to add more at a later date.
When the instances of your class can be used interchangeably and you want to reduce the number of instances created in order to improve performance.
When the instances of your class cannot be used interchangeable and you need to convert them so that they are interchangeable
When the instances of your class can be use interchangeable and you want to reduce the number of instances created in order to improve performance