# Interface Segregation Principle

Record: `arch:interface-segregation`
Kind: principle
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: mandatory
Scope: interface, service, module
Canonical: https://banes-lab.com/ontology#arch-interface-segregation

## Repair

- Refactored by: Split Interface, Extract Role Interface
- Detected by: unused interface method implementations
- Violated by: clients depending on unused methods
- Measured by: interface method usage ratio
- Enforced by: interface usage analysis, lint rules

## requires

- [Role-Specific Interfaces](https://banes-lab.com/records/lex/role-specific-interfaces.md)

## reinforces

- [Single Responsibility Principle (SRP)](https://banes-lab.com/records/arch/single-responsibility.md)
- [Low Coupling](https://banes-lab.com/records/arch/low-coupling.md)

## enables

- [Consumer-Specific Contracts](https://banes-lab.com/records/lex/consumer-specific-contracts.md)

## conflicts-with

- [Fat Interface](https://banes-lab.com/records/lex/fat-interface.md)
- [Repository Dump](https://banes-lab.com/records/arch/repository-dump.md)

## tensions-with

- [Interface Proliferation](https://banes-lab.com/records/lex/interface-proliferation.md)

## tensions

- [Interface Segregation Principle (ISP) Interface Proliferation](https://banes-lab.com/records/tension/interface-proliferation-interface-segregation-principle-isp.md)
