Creational patterns deal with object creation, abstracting and controlling how instances are made. Available patterns include:
abstract_factory: Use a generic function with specific factories.borg: A singleton with shared-state among instances.builder: Use a builder object to receive parameters and return constructed objects instead of multiple constructors.factory: Delegate a specialized function/method to create instances.lazy_evaluation: A lazily-evaluated property pattern in Python.pool: Preinstantiate and maintain a group of instances of the same type.prototype: Use a factory and clones of a prototype for new instances (useful if instantiation is expensive).
| Pattern | Description |
|:-------:| ----------- |
| [abstract_factory](patterns/creational/abstract_factory.py) | use a generic function with specific factories |
| [borg](patterns/creational/borg.py) | a singleton with shared-state among instances |
| [builder](patterns/creational/builder.py) | instead of using multiple constructors, builder object receives parameters and returns constructed objects |
| [factory](patterns/creational/factory.py) | delegate a specialized function/method to create instances |
| [lazy_evaluation](patterns/creational/lazy_evaluation.py) | lazily-evaluated property pattern in Python |
| [pool](patterns/creational/pool.py) | preinstantiate and maintain a group of instances of the same type |
| [prototype](patterns/creational/prototype.py) | use a factory and clones of a prototype for new instances (if instantiation is expensive) |