# The lex records whose category is creational-patterns

This index as JSON: https://banes-lab.com/json/api/facets/lex/category/creational-patterns

## Entries

- [Complex Factory Hierarchies](https://banes-lab.com/records/lex/complex-factory-hierarchies.md): Building elaborate parallel factory class hierarchies where cloning an existing configured instance would suffice.
- [Concrete Constructor Coupling](https://banes-lab.com/records/lex/concrete-constructor-coupling.md): Instantiating concrete classes directly with constructors, coupling callers to specific implementations.
- [Global Mutable State](https://banes-lab.com/records/lex/global-mutable-state.md): Exposing global variables that any code can mutate, creating hidden coupling and nondeterminism.
- [Mixed Product Families](https://banes-lab.com/records/lex/mixed-product-families.md): Combining products from different incompatible families, producing inconsistent sets of objects.
- [Scattered Construction Logic](https://banes-lab.com/records/lex/scattered-construction-logic.md): Spreading object-creation logic across many call sites instead of centralizing it in a factory.
- [Telescoping Constructor](https://banes-lab.com/records/lex/telescoping-constructor.md): Overloading constructors with ever more parameters to cover optional fields, producing unreadable call sites.
- [Controlled Instantiation](https://banes-lab.com/records/lex/controlled-instantiation.md): The ability to govern how and when an object is created.
- [Deferred Instantiation](https://banes-lab.com/records/lex/deferred-instantiation.md): The ability to let subclasses decide which class to instantiate, deferring the choice from the base class.
- [Dynamic Object Creation](https://banes-lab.com/records/lex/dynamic-object-creation.md): The ability to create new objects at runtime by cloning existing configured instances.
- [Family-Level Replacement](https://banes-lab.com/records/lex/family-level-replacement.md): The ability to swap an entire family of related products by changing a single factory.
- [Polymorphic Construction](https://banes-lab.com/records/lex/polymorphic-construction.md): The ability to create objects through a common interface without naming their concrete classes.
- [Shared Resource Access](https://banes-lab.com/records/lex/shared-resource-access.md): The ability to give many callers coordinated access to one shared resource.
- [Valid Object Creation](https://banes-lab.com/records/lex/valid-object-creation.md): The ability to construct an object only once all its required parts are supplied and validated.
- [Cloneable Template Object](https://banes-lab.com/records/lex/cloneable-template-object.md): The requirement that a prototype object support being copied to produce new instances.
- [Creation Variation](https://banes-lab.com/records/lex/creation-variation.md): A precondition that different variants of a product must be produced depending on runtime context.
- [Related Product Variants](https://banes-lab.com/records/lex/related-product-variants.md): The requirement that products form families of related variants meant to be used together.
- [Single-Instance Need](https://banes-lab.com/records/lex/single-instance-need.md): A precondition that exactly one instance of a type must exist across the system.
- [Subclass-Controlled Creation](https://banes-lab.com/records/lex/subclass-controlled-creation.md): The requirement that subclasses determine which concrete product a creator instantiates.
- [Complex Construction](https://banes-lab.com/records/lex/complex-construction.md): The degree of complexity in assembling an object that motivates a step-by-step builder.
- [Copy Semantics](https://banes-lab.com/records/lex/copy-semantics.md): The degree of care required to define correct deep versus shallow copying when cloning objects.
- [Inheritance Complexity](https://banes-lab.com/records/lex/inheritance-complexity.md): The degree to which relying on subclassing to vary creation adds to the inheritance hierarchy's complexity.
