hangout ood – princípio da responsabilidade única
DESCRIPTION
Slides apresentados durante o hangout OOD - SRP.TRANSCRIPT
Hangout OOD – Princípio da Responsabilidade Única03/06/2014
Participantes:• João Batista Neto - Hoster
• Augusto Pascutti - Moderador
• Priscila Mayumi Sato – Slider maker
• Ivo nascimento – Controlador do chat
• Luís Otavio
• Henrique Moody
• Daniel Ribeiro
Pauta• Enfatizar o que são princípios de design.
• Abordar, com profundidade e exemplos, o princípio de design S.R.P.
• O que é responsabilidade?
• Como identificar as responsabilidade de um objeto?
• Ilustrar casos do mundo real, através de exemplos em frameworks ou bibliotecas conhecidas, o uso de S.R.P. e as consequências que esse uso trouxe para o FW ou biblioteca.
• Pôs pauta: discutir exemplos enviados previamente por cobaias.
Princípios de design
O Design de Software Orientado a Objetos trata especificamente da forma com que os objetos se
relacionam, ou seja, como expor a responsabilidade dos objetos de forma que outros objetos possam se
relacionar.
Vá entender realmente o que é Orientação a Objetos antes de sair convertendo um código procedural dentro
de classes e chamar isso de Orientação a Objetos.
Decorar todos os Desing Patterns não irá te salvar no dia a dia.
Princípio de design S.R.P.
Os motivos dos métodos de uma classe devem fazer sentido e esta deve fazer conhecer seus
comportamentos sem causar transtorno ao resto da aplicação.
Why on earth then does the class have a method called priceFilter() in the middle of it? That method is not
defined by the interface, and if you look at the class name – which should at least indicate the reason for it
to exist – you can most certainly say that it doesn’t belong to that context.
Como um método representa UMA ação/comportamento do objeto, ele
não deve ser grande (10~15 linhas) e com isso você terá classes pequenas (elas sendo bem dividas e talz
não deverão ter mais de 130 linhas não comentadas) .
Exemplo
Source: https://gist.github.com/drgomesp/852b7afe7a270958c22a
Pôs pauta!
• https://gist.github.com/Bolinha1/5112789
Cobaia 1: classe de Desvio Padrão
Métodos:
• _construtor($amostra)
• media()
• somaQuadradodoDesvio()
• desvioPadraoPopulacional()
• desvioPadraoAmostra()
• https://gist.github.com/Bolinha1/5112789
Álibi (ou não): teste