Single-Responsibility Principle

Principio da Responsabilidade Única

A classe deve ter um, e somente um, motivo para mudar.

No contexto do Principio da Responsabilidade Única (SRP), é dito que a responsabilidade de uma classe é definida como uma razão para a mudança. Se uma classe tem mais de uma razão para mudar, então ela tem mais de uma responsabilidade.

Uma classe que possui uma única responsabilidade também é considerada uma classe coesa, ou seja, ela não toma conta de mais de um conceito do sistema, além do que, essa responsabilidade deve ser totalmente encapsulado pela classe, caso contrário os pontos de alterações ficarão implícitos e o desenvolvedor precisará buscá-los manualmente e é óbvio que algum vai ser deixado para trás.

Trabalhar com classes coesas significa ter mais simplicidade em mantê-las, além do que, possuem menos código e seu reúso é maior.

Toda classe que não é coesa não para de crescer nunca.

Enfim, nem sempre é fácil enxergar a responsabilidade de uma classe. Talvez essa seja a maior dúvida na hora de se pensar em códigos coesos. É fácil entender que uma classe deve ter apenas uma responsabilidade. O difícil é definir o que é uma responsabilidade, afinal é algo totalmente subjetivo. Por isso, geralmente, colocamos mais código do que deveríamos nela. Dois comportamentos “pertencem” ao mesmo conceito/ responsabilidade se ambos mudam juntos.

Fontes de pesquisas
Orientação a Objetos e SOLID para Ninjas
Agile Software Development, Principles, Patterns, and Practices
Single responsibility principle