[1] O documento discute o Princípio da Responsabilidade Única (SRP), que diz que cada classe deve ter apenas uma razão para mudar. [2] Isso evita que classes realizem muitas tarefas diferentes e tenham muitas razões para mudar, o que pode levar a mais erros. [3] O documento fornece dicas para aplicar o SRP na prática, como isolar métodos em classes separadas de acordo com suas responsabilidades.
2. SRP - Nada de Classes Jack Bauer...
Sabemos que OO sugere
reuso, extensibilidade e
manutenabilidade.
Mas isso é impossível quando
temos Classes realizando um
milhão de tarefas...
3. SRP - Apenas uma razão para mudar...
Nunca deve existir mais de uma razão para uma classe mudar
Muitas Razões Para Mudar = Muitas Razões Para Ter Erros
4. SRP - Ou seja...
Cada Classe deve fazer SÓ o SEU trabalho Sujo
5. SRP - Dicas
1. Identifique as responsabilidades da
classe
2. Extraia métodos para isolar as
responsabilidades
3. Extraia uma classe para isolar métodos
que devem permanecer juntos
4. Se as camadas superiores podem fornecer
informações, faça, não carregue tudo na classe
“canivete suíço”
5. Se vários métodos compartilham parâmetros,
promova-os a variáveis de instância
6. SRP - Na Prática
Métodos:
Area() - Calcula a área do Retângulo usando um modelo matemático;
Desenhar() - Desenha o Retângulo usando uma interface gráfica;
DUAS RESPONSABILIDADES!!!
qualquer mudança no modelo matemático pode impactar na
interface gráfica e vice-versa..
7. SRP - Na Prática
Separando as responsabilidades
8. SRP - Conclusões
1. Se uma classe possuir mais de uma responsabilidade, deve-
se considerar sua decomposição em duas ou mais classes;
2. Baseado no princípio da coesão funcional, uma classe deve
ter uma única responsabilidade;
3. Cada responsabilidade é um eixo de mudança e as fontes de
mudança devem ser isoladas;
Este princípio é um dos mais simples de entender, mas muito difícil de ser colocado
em prática.... É natural agrupar responsabilidades...(Object Mentor)