# Extract Module

> A technique for moving one responsibility out of a module into a new module with its own entry point.

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

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Extract Class](https://banes-lab.com/records/lexicon/extract-class.md) and before [Split Module](https://banes-lab.com/records/lexicon/split-module.md).

## Category

- [Core Modular Design](https://banes-lab.com/records/lexicon-category/core-modular-design.md)

## Refactors

- [Shotgun Surgery](https://banes-lab.com/records/architecture/shotgun-surgery.md)
- [Single Responsibility Principle](https://banes-lab.com/records/architecture/single-responsibility.md)
- [Separation of Concerns](https://banes-lab.com/records/architecture/separation-of-concerns.md)
- [Do Not Repeat Yourself](https://banes-lab.com/records/architecture/duplicate-code.md)
- [Composability](https://banes-lab.com/records/architecture/composability.md)
- [Reusability](https://banes-lab.com/records/architecture/reusability.md)
- [Model Inference](https://banes-lab.com/records/architecture/model-inference.md)
- [Component-Based Architecture](https://banes-lab.com/records/architecture/component-based-architecture.md)
- [Package by Feature](https://banes-lab.com/records/architecture/package-by-feature.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.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)
- [Codebase / System Architecture Styles](https://banes-lab.com/ontology/principles/architecture-category-codebase-system-architecture-styles.md)
