# Extract Interface

> A technique for declaring the operations clients use as an interface, so the clients depend on it instead of on the class.

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

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Narrow Specialized Behavior](https://banes-lab.com/records/lexicon/narrow-specialized-behavior.md) and before [Extract Role Interface](https://banes-lab.com/records/lexicon/extract-role-interface.md).

## Category

- [SOLID / Object-Oriented Design](https://banes-lab.com/records/lexicon-category/solid-object-oriented-design.md)

## Refactors

- [Concrete Coupling](https://banes-lab.com/records/architecture/concrete-coupling.md)
- [Circular Dependency](https://banes-lab.com/records/architecture/circular-dependency.md)
- [Directed Acyclic Graph](https://banes-lab.com/records/architecture/directed-acyclic-graph.md)
- [Explicit Contracts](https://banes-lab.com/records/architecture/explicit-contracts.md)
- [Interface-Based Design](https://banes-lab.com/records/architecture/interface-based-design.md)
- [Low Coupling](https://banes-lab.com/records/architecture/low-coupling.md)
- [Abstraction](https://banes-lab.com/records/architecture/abstraction.md)
- [Dependency Inversion Principle](https://banes-lab.com/records/architecture/dependency-inversion.md)
- [Liskov Substitution Principle](https://banes-lab.com/records/architecture/liskov-substitution.md)
- [Extension Points](https://banes-lab.com/records/architecture/extension-points.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)
- [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [SOLID / Object-Oriented Design](https://banes-lab.com/ontology/principles/architecture-category-solid-object-oriented-design.md)
- [Plugin / Extensibility / IoC](https://banes-lab.com/ontology/principles/architecture-category-plugin-extensibility-ioc.md)
- [Codebase / System Architecture Styles](https://banes-lab.com/ontology/principles/architecture-category-codebase-system-architecture-styles.md)
