# Extract Adapter

> A technique for moving the code that talks to a framework, vendor or protocol into an adapter behind a port.

Record: `lexicon:extract-adapter`
Kind: technique
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-extract-adapter

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Introduce Port](https://banes-lab.com/records/lexicon/introduce-port.md) and before [Move Framework Outward](https://banes-lab.com/records/lexicon/move-framework-outward.md).

## Category

- [Codebase / System Architecture Styles](https://banes-lab.com/records/lexicon-category/codebase-system-architecture-styles.md)

## Refactors

- [Concrete Coupling](https://banes-lab.com/records/architecture/concrete-coupling.md)
- [Boundary Leakage](https://banes-lab.com/records/architecture/boundary-leakage.md)
- [Framework Leakage](https://banes-lab.com/records/architecture/framework-leakage.md)
- [Vendor Lock-In Leakage](https://banes-lab.com/records/architecture/vendor-lock-in-leakage.md)
- [Anti-Corruption Layer](https://banes-lab.com/records/architecture/anti-corruption-layer.md)
- [Stable Interfaces](https://banes-lab.com/records/architecture/stable-interfaces.md)
- [Backward Compatibility](https://banes-lab.com/records/architecture/backward-compatibility.md)
- [Protocol Compatibility](https://banes-lab.com/records/architecture/protocol-compatibility.md)
- [Interoperability](https://banes-lab.com/records/architecture/interoperability.md)
- [Portability](https://banes-lab.com/records/architecture/portability.md)
- [Protocol Independence](https://banes-lab.com/records/architecture/protocol-independence.md)
- [Low Coupling](https://banes-lab.com/records/architecture/low-coupling.md)
- [Replaceability](https://banes-lab.com/records/architecture/replaceability.md)
- [Interchangeability](https://banes-lab.com/records/architecture/interchangeability.md)
- [Model Inference](https://banes-lab.com/records/architecture/model-inference.md)
- [Adapter Pattern](https://banes-lab.com/records/architecture/adapter-pattern.md)
- [Ports and Adapters Architecture](https://banes-lab.com/records/architecture/ports-and-adapters-architecture.md)
- [Clean Architecture](https://banes-lab.com/records/architecture/clean-architecture.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Domain Architecture](https://banes-lab.com/ontology/principles/architecture-category-domain-architecture.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Portability / Infrastructure / Deployment](https://banes-lab.com/ontology/principles/architecture-category-portability-infrastructure-deployment.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Model Architecture](https://banes-lab.com/ontology/principles/architecture-category-model-architecture.md)
- [Structural Patterns](https://banes-lab.com/ontology/principles/architecture-category-structural-patterns.md)
- [Codebase / System Architecture Styles](https://banes-lab.com/ontology/principles/architecture-category-codebase-system-architecture-styles.md)
