Definition

“Each class should have only one reason to change.”

The result of implementing this is that you will have a code you will have components focused on specific tasks that can be tested and implemented individually.

Tools Used: Inheritance Composition

Note: Single Responsibility Principle can be achieved through either Inheritance or Composition. But Composition is preferred.

Difference between Inheritance and Composition