# Proxy Pattern

> A design pattern that places a stand-in with the same interface in front of an object, to control, defer or cache access to it.

Record: `architecture:proxy-pattern`
Kind: pattern
Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
Severity: contextual
Scope: access control, remote access, lazy loading
Canonical: https://banes-lab.com/ontology#architecture-proxy-pattern

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Facade Pattern](https://banes-lab.com/records/architecture/facade-pattern.md) and before [Bridge Pattern](https://banes-lab.com/records/architecture/bridge-pattern.md).

## Repair

- Refactored by: Introduce Proxy
- Detected by: bypassed access wrapper
- Violated by: uncontrolled direct resource access
- Measured by: proxy bypass count
- Enforced by: access rules

## Requires

- [Controlled Access](https://banes-lab.com/records/lexicon/controlled-access.md)

## Reinforces

- [Encapsulation](https://banes-lab.com/records/architecture/encapsulation.md)
- [Security](https://banes-lab.com/records/lexicon/security.md)

## Enables

- [Lazy Load](https://banes-lab.com/records/lexicon/lazy-load.md)
- [Authorization](https://banes-lab.com/records/architecture/authorization.md)
- [Remote Stub](https://banes-lab.com/records/lexicon/remote-stub.md)

## Conflicts with

- [Direct Access](https://banes-lab.com/records/lexicon/direct-access.md)

## In tension with

- [Transparency / Debugging](https://banes-lab.com/records/lexicon/transparency-debugging.md)

## Tensions

- [Proxy Pattern / Transparency / Debugging](https://banes-lab.com/records/tension/proxy-pattern-transparency-debugging.md)

## Severity

- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)

## Category

- [Structural Patterns](https://banes-lab.com/records/architecture-category/structural-patterns.md)

## Linked from

- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Security / Privacy / Compliance / Governance](https://banes-lab.com/ontology/principles/architecture-category-security-privacy-compliance-governance.md)
- [Core Vocabulary](https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md)
- [Quality Attributes](https://banes-lab.com/ontology/lexicon/lexicon-category-quality-attributes.md)
- [Structural Patterns](https://banes-lab.com/ontology/lexicon/lexicon-category-structural-patterns.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
