Apresentação - Single responsability principle
-
Upload
thiago-ribeiro -
Category
Documents
-
view
133 -
download
1
Transcript of Apresentação - Single responsability principle
Single Responsability Principle
Marcelo NascimentoThiago FunghiThiago Ribeiro
SRP - Nada de Classes Jack Bauer...
Mas isso é impossível quando temos Classes realizando um milhão de tarefas...
Sabemos que OO sugere reuso, extensibilidade e manutenabilidade.
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
SRP - Ou seja...
Cada Classe deve fazer SÓ o SEU trabalho Sujo
SRP - Dicas
5. Se vários métodos compartilham parâmetros, promova-os a variáveis de instância
1. Identifique as responsabilidades da classe
4. Se as camadas superiores podem fornecer informações, faça, não carregue tudo na classe “canivete suíço”
3. Extraia uma classe para isolar métodos que devem permanecer juntos
2. Extraia métodos para isolar as responsabilidades
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..
SRP - Na Prática
Separando as responsabilidades
SRP - Conclusões
1. Se uma classe possuir mais de uma responsabilidade, deve-se considerar sua decomposição em duas ou mais classes;
3. Cada responsabilidade é um eixo de mudança e as fontes de mudança devem ser isoladas;
2. Baseado no princípio da coesão funcional, uma classe deve ter uma única responsabilidade;
Este princípio é um dos mais simples de entender, mas muito difícil de ser colocado em prática.... É natural agrupar responsabilidades...(Object Mentor)
SRP - DÚVIDAS?