Facade objects are often Singletons because only one Facade object is required. In contrast, Facade defines a simpler interface to a subsystem, it doesn't add new functionality, and it is not known by the subsystem classes. Abstract Factory can be used as an alternative to Facade to hide platform-specific classes. Whereas Flyweight shows how to make lots of little objects, Facade shows how to make a single object represent an entire subsystem. Flyweight is often combined with Composite to implement shared leaf nodes.
Flyweight explains when and how State objects can be shared.