Creational Design Patterns
  • provide various object creation mechanisms, which increase flexibility and reuse of existing code

Creational Design Patterns

Factory Design Patterns

Static Factory Method Pattern

SINGLE method creating objects of SAME/SIMILAR type without specifying the concrete class (not overridable)

Factory Method Pattern

SINGLE method creating objects of SAME/SIMILAR type without specifying the concrete class (overridable)

Abstract Factory Pattern

MULTIPLE methods creating a FAMILY of DIFFERENT and/or RELATED object types without specifying the objects’ concrete classes (overridable)

Factories (FoF) Pattern

a factory that produces customizable factories during runtime

Factory Kit Pattern

provides a way to customizable factories during runtime

Builder Pattern

used to separate the construction of a complex object from its representation

Step Builder Pattern

an extension of the Builder Pattern that guides the user through the construction of the complex object

Prototype Pattern

used to create objects that are clones of a prototypical instance

Prototype Builder Pattern

used to create builder objects that are clones of a prototypical instance and/or builder-instance

Singleton Pattern

used to ensure a SINGLE instance of a class, and provides global access to it

Multiton Design Pattern

used to ensure N instances of a class, and provides global access to it

Object Pool

used to provide a cache of instantiated objects and for tracking which ones are in use and which are available

Flyweight Pattern

used to control large numbers of fine-grain object creation, by sharing to reduce memory usage