Apresentação - Single responsability principle

Post on 12-Apr-2017

325 views 1 download

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?