For questions about the Single Responsibility Principle in object-oriented programming, one of the SOLID principles coined by Robert C. Martin. It states that a module should have only one reason to change.
Robert Martin was inspired by David Parnas, Edsger Dijkstra (who coined the term Separation of Concerns) and Larry Constantine (who coined the terms Coupling and Cohesion). During the late 1990s, Martin consolidated their ideas into the Single Responsibility Principle.
Martin's definition of the SRP evolved to become,
Gather together the things that change for the same reasons. Separate those things that change for different reasons.
In keeping with the previous authors who inspired him, Martin notes that,
...this is just another way to define cohesion and coupling.
In contrast with the separation-of-concerns principle, the SRP is focused on people rather than functionality.
As you think about this principle, remember that the reasons for change are people. It is people who request changes. And you don’t want to confuse those people, or yourself, by mixing together the code that many different people care about for different reasons.
The SRP later became the first of Martin's solid-principles.