SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Single Responsability
      Principle

    Marcelo Nascimento
      Thiago Funghi
      Thiago Ribeiro
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...
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
                          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
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;



     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)
SRP - DÚVIDAS?

Mais conteúdo relacionado

Destaque

BookedOut + MS Case Study_2015
BookedOut + MS Case Study_2015BookedOut + MS Case Study_2015
BookedOut + MS Case Study_2015Dan Winter
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPOle Kristian Mørch-Storstein
 
TRABAJO DE ICONICIDAD DE GRUPO
TRABAJO DE ICONICIDAD DE GRUPOTRABAJO DE ICONICIDAD DE GRUPO
TRABAJO DE ICONICIDAD DE GRUPOAlbertogarciagomez
 
Types of sites - sharepoint 2013
Types of  sites - sharepoint 2013Types of  sites - sharepoint 2013
Types of sites - sharepoint 2013Subhi Almouslem
 
Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...
Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...
Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...Conectarnos Soluciones de Internet
 

Destaque (9)

Id67r0
Id67r0Id67r0
Id67r0
 
BookedOut + MS Case Study_2015
BookedOut + MS Case Study_2015BookedOut + MS Case Study_2015
BookedOut + MS Case Study_2015
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
 
TRABAJO DE ICONICIDAD DE GRUPO
TRABAJO DE ICONICIDAD DE GRUPOTRABAJO DE ICONICIDAD DE GRUPO
TRABAJO DE ICONICIDAD DE GRUPO
 
Types of sites - sharepoint 2013
Types of  sites - sharepoint 2013Types of  sites - sharepoint 2013
Types of sites - sharepoint 2013
 
Sociedades Produtoras
Sociedades ProdutorasSociedades Produtoras
Sociedades Produtoras
 
Evolucao.humana
Evolucao.humanaEvolucao.humana
Evolucao.humana
 
Keyword Desain Rumah
Keyword Desain RumahKeyword Desain Rumah
Keyword Desain Rumah
 
Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...
Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...
Luis abdul samaca uso de la red social twitter en el modelo estudio de caso e...
 

Semelhante a Princípio da Responsabilidade Única (SRP

Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: ClassesInael Rodrigues
 
Artigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalArtigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalThiago Ribeiro
 
Apresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a ObjetosApresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a Objetosmauroladeiafilho
 
SOLID Os princípios da linguagem orientada a objeto
SOLID Os princípios da linguagem orientada a objetoSOLID Os princípios da linguagem orientada a objeto
SOLID Os princípios da linguagem orientada a objetoAlberto Monteiro
 
Baixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a ObjetosBaixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a ObjetosPaulo Vitor
 

Semelhante a Princípio da Responsabilidade Única (SRP (8)

Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
 
SRP - Single Responsability Principle
SRP - Single Responsability PrincipleSRP - Single Responsability Principle
SRP - Single Responsability Principle
 
Artigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalArtigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-final
 
Apresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a ObjetosApresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a Objetos
 
Aula Herança
Aula HerançaAula Herança
Aula Herança
 
SOLID Os princípios da linguagem orientada a objeto
SOLID Os princípios da linguagem orientada a objetoSOLID Os princípios da linguagem orientada a objeto
SOLID Os princípios da linguagem orientada a objeto
 
Baixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a ObjetosBaixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a Objetos
 
Classes abstratas e interfaces
Classes abstratas e interfacesClasses abstratas e interfaces
Classes abstratas e interfaces
 

Princípio da Responsabilidade Única (SRP

  • 1. Single Responsability Principle Marcelo Nascimento Thiago Funghi Thiago Ribeiro
  • 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)