# High Cohesion

Record: `arch:high-cohesion`
Kind: quality-attribute
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: mandatory
Scope: class, module, component
Canonical: https://banes-lab.com/ontology#arch-high-cohesion

## Repair

- Refactored by: Extract Class, Split Module, Move Method
- Detected by: low LCOM, scattered dependencies, unrelated public API
- Violated by: unrelated methods, unrelated fields, unstable responsibility grouping
- Measured by: cohesion metrics, change locality
- Enforced by: module ownership, [architecture review](https://banes-lab.com/records/arch/architecture-review.md)

## requires

- [Single Responsibility Principle (SRP)](https://banes-lab.com/records/arch/single-responsibility.md)
- [Explicit Boundaries](https://banes-lab.com/records/arch/explicit-boundaries.md)

## reinforces

- [Modularity](https://banes-lab.com/records/arch/modularity.md)
- [Encapsulation](https://banes-lab.com/records/arch/encapsulation.md)

## enables

- [Testability](https://banes-lab.com/records/arch/testability.md)
- [Replaceability](https://banes-lab.com/records/arch/replaceability.md)

## conflicts-with

- [God Object](https://banes-lab.com/records/arch/god-object.md)
- [Utility Dump](https://banes-lab.com/records/arch/utility-dump.md)
- [Shotgun Surgery](https://banes-lab.com/records/arch/shotgun-surgery.md)

## tensions-with

- [Over-Specialization](https://banes-lab.com/records/lex/over-specialization.md)

## tensions

- [High Cohesion Over-Specialization](https://banes-lab.com/records/tension/high-cohesion-over-specialization.md)

## referenced-by

- [Single Responsibility Principle (SRP)](https://banes-lab.com/records/arch/single-responsibility.md)
- [Modularity](https://banes-lab.com/records/arch/modularity.md)
