# Prototype Pattern

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

## Repair

- Refactored by: Introduce Prototype, Add Clone Semantics
- Detected by: duplicate initialization flows
- Violated by: expensive repeated setup
- Measured by: initialization duplication/cost
- Enforced by: clone tests

## requires

- [Cloneable Template Object](https://banes-lab.com/records/lex/cloneable-template-object.md)

## reinforces

- [Runtime Extensibility](https://banes-lab.com/records/arch/runtime-extensibility.md)

## enables

- [Dynamic Object Creation](https://banes-lab.com/records/lex/dynamic-object-creation.md)

## conflicts-with

- [Complex Factory Hierarchies](https://banes-lab.com/records/lex/complex-factory-hierarchies.md)

## tensions-with

- [Copy Semantics](https://banes-lab.com/records/lex/copy-semantics.md)

## tensions

- [Prototype Pattern Copy Semantics](https://banes-lab.com/records/tension/copy-semantics-prototype-pattern.md)
