Single Responsibility Principle

E232905

The Single Responsibility Principle is a core object-oriented design guideline stating that a class or module should have only one reason to change, meaning it should be responsible for just a single, well-defined functionality.

All labels observed (1)

Label Occurrences
Single Responsibility Principle canonical 3

How this entity was disambiguated

Statements (47)

Predicate Object
instanceOf object-oriented design principle
software design principle
aimsTo improve maintainability
improve testability
increase cohesion
reduce coupling
simplify code comprehension
alsoKnownAs SRP
appliesTo classes
functions
microservices
modules
services
category code quality guideline
software engineering principle
clarifiedAs one reason to change, not one task to perform
contrastsWith highly coupled modules
multifunctional classes
encourages clear module boundaries
single-purpose interfaces
small focused classes
focusesOn separation of concerns
formulatedBy Robert C. Martin
hasConsequence easier debugging
more stable public APIs
reduced side effects
hasDefinition A class or module should have only one reason to change.
A software module should have one, and only one, responsibility.
helpsWith change impact isolation
code reuse
refactoring
unit testing
introducedIn early 2000s
partOf SOLID principles
promotedIn Agile software development
Clean Code practices
relatedTo Dependency Inversion Principle
Interface Segregation Principle
Liskov Substitution Principle
Open-Closed Principle
surface form: Open/Closed Principle
usedIn clean architecture
domain-driven design
layered architecture
microservice architecture
object-oriented programming
violatedBy anemic domain model with mixed responsibilities
god object

How these facts were elicited

Referenced by (3)

Full triples — surface form annotated when it differs from this entity's canonical label.

DRY principle relatedTo Single Responsibility Principle
Open-Closed Principle relatedTo Single Responsibility Principle