# Dynamic Binding

Record: `arch:dynamic-binding`
Kind: mechanism
Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)
Severity: contextual
Scope: runtime, interface, plugin
Canonical: https://banes-lab.com/ontology#arch-dynamic-binding

## Repair

- Refactored by: Introduce Factory, [Registry](https://banes-lab.com/records/lex/registry.md), Strategy
- Detected by: hardcoded implementation selection
- Violated by: fixed concrete binding where runtime selection required
- Measured by: runtime binding coverage
- Enforced by: integration tests

## requires

- [Abstraction](https://banes-lab.com/records/arch/abstraction.md)
- [Runtime Resolution](https://banes-lab.com/records/lex/runtime-resolution.md)

## reinforces

- [Polymorphism](https://banes-lab.com/records/arch/polymorphism.md)
- [Extensibility](https://banes-lab.com/records/lex/extensibility.md)

## enables

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

## conflicts-with

- [Compile-Time Binding](https://banes-lab.com/records/lex/compile-time-binding.md)

## tensions-with

- [Static Safety](https://banes-lab.com/records/lex/static-safety.md)

## tensions

- [Dynamic Binding Static Safety](https://banes-lab.com/records/tension/dynamic-binding-static-safety.md)

## referenced-by

- [Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)
- [Reflection](https://banes-lab.com/records/arch/reflection.md)
- [Late Binding](https://banes-lab.com/records/arch/late-binding.md)
- [Runtime Binding](https://banes-lab.com/records/arch/runtime-binding.md)
