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

Agullo correa practica3_xarxesmultimedia
Agullo correa practica3_xarxesmultimediaAgullo correa practica3_xarxesmultimedia
Agullo correa practica3_xarxesmultimediaMarcos Agullo
 
Diplomado docencia universitaria
Diplomado docencia universitariaDiplomado docencia universitaria
Diplomado docencia universitariaHermes Camilo
 
Ludwing julian rueda hoyos
Ludwing julian rueda hoyosLudwing julian rueda hoyos
Ludwing julian rueda hoyosludwingrueda2012
 
diapositivas luisa
diapositivas luisadiapositivas luisa
diapositivas luisalui1202
 
Dra. Laura sanchez - ley de víctimas y Acceso a la Información
Dra. Laura sanchez - ley de víctimas y Acceso a la InformaciónDra. Laura sanchez - ley de víctimas y Acceso a la Información
Dra. Laura sanchez - ley de víctimas y Acceso a la InformaciónARGENACO
 
Exe learning arbol de contenidos
Exe learning   arbol de contenidosExe learning   arbol de contenidos
Exe learning arbol de contenidosdiegoal2012
 
Reunião do dia 17 de outubro de 2014
Reunião do dia 17 de outubro de 2014 Reunião do dia 17 de outubro de 2014
Reunião do dia 17 de outubro de 2014 Marcia Cosme da Silva
 
Edgar Mauricio Solano - Departamento Nacional de Planeación - Colombia
Edgar Mauricio Solano - Departamento Nacional de Planeación - ColombiaEdgar Mauricio Solano - Departamento Nacional de Planeación - Colombia
Edgar Mauricio Solano - Departamento Nacional de Planeación - ColombiaARGENACO
 
D. João II
D. João IID. João II
D. João IIberenvaz
 
Comunicacion efectiva.
Comunicacion efectiva.Comunicacion efectiva.
Comunicacion efectiva.Chaarlyy MV
 
Esquema mc gvfinal[1]26 10-12
Esquema mc gvfinal[1]26 10-12Esquema mc gvfinal[1]26 10-12
Esquema mc gvfinal[1]26 10-12Víctor Pérez
 
Herramientas de la web
Herramientas de la webHerramientas de la web
Herramientas de la webAlekz Alonso
 
Grupo4_9ºB
Grupo4_9ºBGrupo4_9ºB
Grupo4_9ºBberenvaz
 
Precentacion del blog
Precentacion del blogPrecentacion del blog
Precentacion del blogMAJOMOYA
 
Canal de castilla
Canal de castillaCanal de castilla
Canal de castillafcalabia
 

Destaque (20)

Agullo correa practica3_xarxesmultimedia
Agullo correa practica3_xarxesmultimediaAgullo correa practica3_xarxesmultimedia
Agullo correa practica3_xarxesmultimedia
 
Diplomado docencia universitaria
Diplomado docencia universitariaDiplomado docencia universitaria
Diplomado docencia universitaria
 
Mediatriz de un segmento
Mediatriz de un segmentoMediatriz de un segmento
Mediatriz de un segmento
 
Ludwing julian rueda hoyos
Ludwing julian rueda hoyosLudwing julian rueda hoyos
Ludwing julian rueda hoyos
 
diapositivas luisa
diapositivas luisadiapositivas luisa
diapositivas luisa
 
Dra. Laura sanchez - ley de víctimas y Acceso a la Información
Dra. Laura sanchez - ley de víctimas y Acceso a la InformaciónDra. Laura sanchez - ley de víctimas y Acceso a la Información
Dra. Laura sanchez - ley de víctimas y Acceso a la Información
 
Exe learning arbol de contenidos
Exe learning   arbol de contenidosExe learning   arbol de contenidos
Exe learning arbol de contenidos
 
Reunião do dia 17 de outubro de 2014
Reunião do dia 17 de outubro de 2014 Reunião do dia 17 de outubro de 2014
Reunião do dia 17 de outubro de 2014
 
Edgar Mauricio Solano - Departamento Nacional de Planeación - Colombia
Edgar Mauricio Solano - Departamento Nacional de Planeación - ColombiaEdgar Mauricio Solano - Departamento Nacional de Planeación - Colombia
Edgar Mauricio Solano - Departamento Nacional de Planeación - Colombia
 
Evolucao.humana
Evolucao.humanaEvolucao.humana
Evolucao.humana
 
Plantilla plan unidad (2)
Plantilla plan unidad (2)Plantilla plan unidad (2)
Plantilla plan unidad (2)
 
D. João II
D. João IID. João II
D. João II
 
Manual linux
Manual linuxManual linux
Manual linux
 
Comunicacion efectiva.
Comunicacion efectiva.Comunicacion efectiva.
Comunicacion efectiva.
 
Fuentes de poder
Fuentes de poderFuentes de poder
Fuentes de poder
 
Esquema mc gvfinal[1]26 10-12
Esquema mc gvfinal[1]26 10-12Esquema mc gvfinal[1]26 10-12
Esquema mc gvfinal[1]26 10-12
 
Herramientas de la web
Herramientas de la webHerramientas de la web
Herramientas de la web
 
Grupo4_9ºB
Grupo4_9ºBGrupo4_9ºB
Grupo4_9ºB
 
Precentacion del blog
Precentacion del blogPrecentacion del blog
Precentacion del blog
 
Canal de castilla
Canal de castillaCanal de castilla
Canal de castilla
 

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
 
Artigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalArtigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-final
 
SRP - Single Responsability Principle
SRP - Single Responsability PrincipleSRP - Single Responsability Principle
SRP - Single Responsability Principle
 
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)