Princípio da Responsabilidade Única (SRP)
Definição
O Princípio da Responsabilidade Única (Single Responsibility Principle - SRP) estabelece que uma classe, módulo ou função deve ter apenas uma razão para mudar.
Isso significa que uma entidade deve ter apenas uma motivação para mudar — ou seja, deve lidar com um único aspecto da lógica do sistema. Ao centralizar uma responsabilidade por componente, o código se torna mais modular, coeso e previsível.
O SRP é o primeiro princípio do SOLID, um conjunto de boas práticas para design orientado a objetos.
Por que é importante
Separar responsabilidades reduz o acoplamento e facilita a manutenção. Se cada módulo tem um propósito claro, mudanças futuras afetam menos partes do sistema. Também favorece testes mais simples e reutilização de código.
Exemplo prático (Python)
Esta classe viola o SRP ao misturar regras de negócio com persistência de dados:
class Usuario:
def __init__(self, nome):
self.nome = nome
def validar_nome(self):
...
def salvar_em_banco(self):
...
Uma melhor separação de responsabilidades seria:
class Usuario:
def __init__(self, nome):
self.nome = nome
def validar_nome(self):
...
class UsuarioRepository:
def salvar(self, usuario):
...
Agora, cada classe tem uma responsabilidade clara: Usuario
representa a entidade e suas regras, enquanto UsuarioRepository
lida com persistência.
Consequências de ignorar o SRP
- Dificulta o entendimento e a testabilidade dos módulos
- Aumenta o acoplamento entre responsabilidades distintas
- Eleva o risco de efeitos colaterais ao modificar o código
- Prejudica o reaproveitamento de funcionalidades em outros contextos