Eu realmente gosto da maneira como Robert C. Martin (Tio Bob) reafirma o Princípio da Responsabilidade Única (vinculado ao PDF) :
There should never be more than one reason for a class to change
É sutilmente diferente da definição tradicional "deve fazer apenas uma coisa", e eu gosto disso porque força você a mudar a maneira como pensa sobre sua aula. Em vez de pensar em "isso está fazendo uma coisa?", Você pensa no que pode mudar e como essas mudanças afetam sua classe. Então, por exemplo, se o banco de dados muda, sua classe precisa mudar? E se o dispositivo de saída mudar (por exemplo, uma tela, um dispositivo móvel ou uma impressora)? Se a sua turma precisa mudar por causa de mudanças de muitas outras direções, isso é um sinal de que sua turma tem muitas responsabilidades.
No artigo vinculado, o Tio Bob conclui:
The SRP is one of the simplest of the principles, and one of the hardest to get right. Conjoining responsibilities is something that we do naturally. Finding and separating those responsibilities from one another is much of what software design is really about.