# Invert Dependency

> A technique for making a high-level module own an abstraction that a low-level module implements.

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

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Split Hierarchy](https://banes-lab.com/records/lexicon/split-hierarchy.md) and before [CRUD-Only State Persistence](https://banes-lab.com/records/lexicon/crud-only-state-persistence.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)
- [Dependency Graph](https://banes-lab.com/records/architecture/dependency-graph.md)
- [Directed Acyclic Graph](https://banes-lab.com/records/architecture/directed-acyclic-graph.md)
- [Abstraction](https://banes-lab.com/records/architecture/abstraction.md)
- [Modularity](https://banes-lab.com/records/architecture/modularity.md)
- [Replaceability](https://banes-lab.com/records/architecture/replaceability.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)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
