# Builder Pattern

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

## Repair

- Refactored by: Introduce Builder
- Detected by: high-arity constructors
- Violated by: constructors with many optional params
- Measured by: constructor parameter count
- Enforced by: API review

## requires

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

## reinforces

- [Intent-Revealing Interface](https://banes-lab.com/records/arch/intent-revealing-interface.md)

## enables

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

## conflicts-with

- [Telescoping Constructor](https://banes-lab.com/records/lex/telescoping-constructor.md)

## tensions-with

- [Boilerplate](https://banes-lab.com/records/lex/boilerplate.md)

## tensions

- [Builder Pattern Boilerplate](https://banes-lab.com/records/tension/boilerplate-builder-pattern.md)
