# Factory Method Pattern

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

## Repair

- Refactored by: Introduce Factory Method
- Detected by: base class directly instantiates variant
- Violated by: fixed construction in base workflow
- Measured by: variant construction duplication
- Enforced by: [design review](https://banes-lab.com/records/arch/design-review.md)

## requires

- [Subclass-Controlled Creation](https://banes-lab.com/records/lex/subclass-controlled-creation.md)

## reinforces

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

## enables

- [Deferred Instantiation](https://banes-lab.com/records/lex/deferred-instantiation.md)

## conflicts-with

- [Concrete Constructor Coupling](https://banes-lab.com/records/lex/concrete-constructor-coupling.md)

## tensions-with

- [Inheritance Complexity](https://banes-lab.com/records/lex/inheritance-complexity.md)

## tensions

- [Factory Method Pattern Inheritance Complexity](https://banes-lab.com/records/tension/factory-method-pattern-inheritance-complexity.md)
