A class should have only one reason to change. Single Responsability Principle.

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

PADRÃO CHAIN OF RESPONSIBILITY
Operações com intervalos
AOO - COAD/YOURDON Desafios da análise : Domínio do problema
Trabalhando Figuras Planas No Graphmática
Engenharia de Software
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
Capítulo 3 - Aplicações das Derivadas
Nice Maria Americano da Costa
MÉTODOS MATEMÁTICOS EM BIOLOGIA
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
BPM(Gerenciamento de processos de negócios)
Elisabeth Suescún Leandra Mara da Silva
Padrão Bridge (Handle/Body)
Elizabeth Suescún Monsalve
Projeto de Sistemas de Software
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Projeto Arquitetural de Software Orientado a Aspectos
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Padrões GoF – Factory Method
Tempo e Espaço Após estudar um pouco a dilatação do tempo e a contração do comprimento uma série de duvidas podem passar pela nossa cabeça: É o espaço.
Padrões para Atribuições de Responsabilidades
Mudança de Variáveis em Integrais Duplas e Triplas
Definição É um padrão de desenvolvimento utilizado na orientação a objeto quando queremos manter baixo o nível de acoplamento entre diferentes partes.
Chapter 1 Agile in a Nutshell (Ágil em uma casca de noz)
Chain of Responsibility
Conceitos.
Análise e Projeto de Sistemas Levantamento de Requisitos
Estatística e Probabilidade
Mackenzie Gestão de Negócios na Internet Elaborado por: Arnaldo Ono São Paulo –
Integral definida Profª Ana Cristina Corrêa Munaretto
REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado.
Qual é o segredo do sucesso em vendas?
(Turma M.E.D – Integrado Jaó)
Diagramas de Atividade
Silas Juccelino Artulanez.  O que é?  Notação  Estado  Mudança de estado  Condições e ações  Diagramas subdivididos  Passos na construção  Verificação.
COMO OS CIENTISTAS DESCOBREM AS COISAS ?
Design Pattern 4 Fundamentos da Engenharia de Software –Leonardo de França Rosa –Rodrigo de Carvalho Rocha.
Professor: Márcio Amador
SIT – T11 Oi Paggo Marcio Luiz Angeli. 1 – Cadeia Paggo Coleta de dados: Opção do cliente em utilizar seu aparelho de celular como meio de pagamento para.
Acoplamento e Coesão Modelagem e Programação Orientada a Objetos
Padrão- MVC Model, View, Controller
Padrões de Projeto.
Introdução Padrões de Projeto
Determinação da aceleração da gravidade
LAYOUT E PROPORÇÃO ÁUREA Semana 04 LAYOUT E PROPORÇÃO ÁUREA.
Padrões de Interação com o Usuário
Vermillion War. Desgin Patterns Mediator O Mediator será usado para gerenciar a mudanças de estados e cenas do jogo sem precisar usar o recurso de cenas.
SISTEMA PROCESSUAL DIGITAL
Padrões de Projeto.
Linguagem de Modelagem Unificada
Curso de Geografia Epistemologia – conceitos gerais
Factory.
ESTOQUES.
Visão Computacional Formação da Imagem Radiometria
Projetando Objetos com Responsabilidades
BRANDING E GERENCIAMENTO DE PORTFOLIO DE PRODUTOS
Professora: Fabrícia F. de Souza
CUSTOS EM RESTAURANTES
Estatística e Indicadores da Manutenção
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Professor: Jailson Domingos-2012
RESPONSABILIDADE SOCIAL COMO VANTAGEM COMPETITIVA. GRUPO : ANDERSON MARIANO HUGO LACORTE NORBERTO WÂNIA REGINA S. PEREIRA.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Princípios de design SOLID Padrões de Projeto Orientados a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Qualidade de Código Mantendo o seu Projeto de Software Livre sob Controle Antonio Terceiro Junho/2009 softwarelivre.org/terceiro.
Transcrição da apresentação:

A class should have only one reason to change. Single Responsability Principle

SRP ou coesão é um dos princípios básicos de OO. Definição: Cada classe deve ter uma única responsabilidade (razão para mudar). Muitos Design Patterns tem como base SRP ( Factory, Chain of Responsability etc). A partir da definição de SRP podemos dizer que: Se uma classe possuir mais de uma responsabilidade deve-se considerar sua decomposição em mais classes. Cada responsabilidade é um eixo de mudança, e as fontes de mudança devem ser isoladas. Vemos na imagem acima que a classe Retângulo tem dois métodos. Area() - Calcula a área que retângulo irá ocupar. Desenhar() - Desenha o retângulo. Esse é um caso de violação da responsabilidade única pois a classe Retângulo tem duas reponsabilidades.

Dessa forma qualquer alteração feita no calculo pode afetar a parte gráfica, assim como uma alteração na parte gráfica pode afetar a parte matemática. Para evitar isso devemos separar as responsabilidades em classes especializadas. Dessa forma qualquer alteração feita em uma das classes não altera a outra. SRP também é usado para justificar o desenvolvimento em camadas, já que cada camada foi feita para separar a interface, negocio e dados. Quando precisarmos buscar os dados do cliente em nossa aplicação teremos as classes Clientes.aspx, ClientesBLL, ClientesDAO. Cada uma com sua responsabilidade.

Conclusão SRP é um princípio simples mas muito difícil de ser alcançado. Unir responsabilidades em um único lugar é algo que fazemos naturalmente. Achar e separar essas responsabilidades é o verdadeiro desafio do design de softwares.