# Encapsulate State

> A technique for making a module's state private and exposing only operations that keep its rules.

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

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Hide Delegate](https://banes-lab.com/records/lexicon/hide-delegate.md) and before [Restrict Exports](https://banes-lab.com/records/lexicon/restrict-exports.md).

## Category

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

## Refactors

- [Shared Mutable State](https://banes-lab.com/records/architecture/shared-mutable-state.md)
- [Feature Envy](https://banes-lab.com/records/architecture/feature-envy.md)
- [Anemic Domain Model](https://banes-lab.com/records/architecture/anemic-domain-model.md)
- [Invariant](https://banes-lab.com/records/architecture/invariant.md)
- [Determinism](https://banes-lab.com/records/architecture/determinism.md)
- [Encapsulation](https://banes-lab.com/records/architecture/encapsulation.md)
- [State Isolation](https://banes-lab.com/records/architecture/state-isolation.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Correctness / Determinism / Verification](https://banes-lab.com/ontology/principles/architecture-category-correctness-determinism-verification.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Transactions / State / Concurrency](https://banes-lab.com/ontology/principles/architecture-category-transactions-state-concurrency.md)
