To my understanding, the flyweight design pattern is not so different from the factory or singleton design patterns.
It is just a factory that produces immutable (and pooled) objects. It is just a singleton that provides one instance per type (of the managed objects), instead of a global single instance.
Factory and singleton are creational patterns, so why should the flyweight be considered a structural pattern?
it's just a factory that produces immutable objects
. Abstract Factory and Factory Method in GoF have much more context. Lots of people confuse Simple Factory and Factory Method. – Kanzu