Singleton (aka. Wrapper) allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class.
Factory Method (aka. Virtual Constructor) defines an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.
Abstract Factory (aka. Kit) provides an interface for creating families of related or dependent objects without specifying their concrete classes.