This Design
pattern is all about class instantiation.
This pattern can be further divided into
class-creation patterns and object-creational
patterns. While class-creation patterns use
inheritance effectively in the instantiation
process, object-creation patterns use
delegation effectively to get the job done.

The Factory Design Pattern delegates the
work of object creation to derived classes of the
interface

The Abstract
Factory
is a type of design pattern that is used for creating
groups of dependant instances of classes without
specifying their concrete classes.

.

The Builder Design Pattern separates the
creation of an instance of a class from its
representation so that the same creation pattern can be
used for creating different representations of the object.

The Singleton Design Pattern makes sure that
at any point of time, there is one and only one instance
of a class present and also provides a global point of
access to the object.

The Prototype Design Pattern creates new
instances of classes by copying its prototype