# Facade Pattern

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

## Repair

- Refactored by: Introduce Facade
- Detected by: broad dependency surface to subsystem
- Violated by: consumers depending on many subsystem internals
- Measured by: consumer dependency count
- Enforced by: API boundary rules

## requires

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

## reinforces

- [Encapsulation](https://banes-lab.com/records/arch/encapsulation.md)
- [Information Hiding](https://banes-lab.com/records/arch/information-hiding.md)

## enables

- [Simplified Access](https://banes-lab.com/records/lex/simplified-access.md)

## conflicts-with

- [Leaky Subsystem API](https://banes-lab.com/records/lex/leaky-subsystem-api.md)

## tensions-with

- [Over-Centralization](https://banes-lab.com/records/lex/over-centralization.md)

## tensions

- [Facade Pattern Over-Centralization](https://banes-lab.com/records/tension/facade-pattern-over-centralization.md)
