Creational design patterns provide various object creation mechanisms, which increase flexibility and reuse of existing code.
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.
Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
Ensure a class only has one instance, and provide a global point of access to it.