Single Responsibility Principle
In object-oriented programming, the Single Responsibility Principle (SRP) states that every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility.
The term was introduced by Robert C. Martin. Martin described it as being based on the principle of cohesion as described by Tom DeMarco in his book Structured Analysis and Systems Specification. Cohesion is a measure of the strength of association of the elements inside a module. A highly cohesive module is a collection of statements and data items that should be treated as a whole because they are so closely related. Any attempt to divide them up would only result in increased coupling and decreased readability.
Glenn Vanderburg said:
"This is also why we refer to a sound line of reasoning, for example, as coherent. The thoughts fit, they go together, they relate...