# Bridge Pattern

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

## Repair

- Refactored by: Introduce Bridge
- Detected by: parallel hierarchies / deep variant classes
- Violated by: subclass explosion for combinations
- Measured by: variant class count
- Enforced by: [design review](https://banes-lab.com/records/arch/design-review.md)

## requires

- [Independent Variation Axes](https://banes-lab.com/records/lex/independent-variation-axes.md)

## reinforces

- [Composition Over Inheritance](https://banes-lab.com/records/arch/composition-over-inheritance.md)

## enables

- [Implementation Swap](https://banes-lab.com/records/lex/implementation-swap.md)

## conflicts-with

- [Cartesian Inheritance Explosion](https://banes-lab.com/records/lex/cartesian-inheritance-explosion.md)

## tensions-with

- [Indirection](https://banes-lab.com/records/lex/indirection.md)

## tensions

- [Bridge Pattern Indirection](https://banes-lab.com/records/tension/bridge-pattern-indirection.md)
