# Factory Pattern

Record: `arch:factory-pattern`
Kind: pattern
Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
Severity: recommended
Scope: object_creation, module
Canonical: https://banes-lab.com/ontology#arch-factory-pattern

## Repair

- Refactored by: Extract Factory
- Detected by: repeated constructors/switches
- Violated by: duplicated conditional construction
- Measured by: construction duplication count
- Enforced by: creation policy review

## requires

- [Creation Variation](https://banes-lab.com/records/lex/creation-variation.md)

## reinforces

- [Open/Closed Principle (OCP)](https://banes-lab.com/records/arch/open-closed.md)
- [Encapsulation](https://banes-lab.com/records/arch/encapsulation.md)

## enables

- [Polymorphic Construction](https://banes-lab.com/records/lex/polymorphic-construction.md)

## conflicts-with

- [Scattered Construction Logic](https://banes-lab.com/records/lex/scattered-construction-logic.md)

## tensions-with

- [Simplicity](https://banes-lab.com/records/lex/simplicity.md)

## tensions

- [Factory Pattern Simplicity](https://banes-lab.com/records/tension/factory-pattern-simplicity.md)

## referenced-by

- [Registry Pattern](https://banes-lab.com/records/arch/registry-pattern.md)
