Objetivos
Padres de Projeto
GRASP
GRASP EXPERT
Padres de Projeto
Conhecer as peas, tabuleiro e regras do jogo de xadrez no so suficientes para definir um grande jogador.
Padres de Projeto
Conhecer e compreender as tcnicas, estratgias e jogadas dos grandes mestres recomendvel.
Padres de Projeto
Conhecer a sintaxe, semntica, estruturas e regras de uma linguagem orientada a objetos no suficiente para definir um bom projetista.
Padres de Projeto
Conhecer e compreender as tcnicas, estratgias e solues dos grandes projetistas recomendvel.
Padres de Projeto
Afinal de contas o que um padro?
Padres de Projeto
Padres contm o somatrio da experincia dos melhores projetistas O-O!
Entre vrias situaes, isolar o que muda do que igual
11
Definio
Maneira eficaz de fazer algo, de atingir um objetivo Mesma idia para cozinhar, dirigir e desenvolver software Jarges so utilizados dentro de uma atividade para se referir a uma determinada situao ou coisa
12
Definio
Pela facilidade de manuteno, pela escalabilidade do projeto, reutilizao de material, organizao e padronizao internacional, podendo seu projeto ser mantido por pessoas que vivem em outro pas e falam outro idioma por exemplo. Como Design Patterns uma metodologia, pode ser aplicada a qualquer situao. No ramo de desenvolvimento de software essa metodologia pode ser aplicada a qualquer linguagem de programao.
14
Por qu padronizar
Transformar jarges em PADRES Documentao = queremos garantir que o conhecimento acumulado sobre uma ao ser preservado para futuras geraes Padres de projeto
Esto em um nvel acima do cdigo Como programar OO mais eficientemente Prover reusabilidade, flexibilidade,
legibilidade
GOF
Gang of Four descreve 23 padres que no so os nicos mas so os mais utilizados Padres de Larman = GRASP General Responsability Assignment Software Patterns Expert Creator Fraco acoplamento Alta coeso
Escolher como distribuir as responsabilidades entre objetos (ou classes) crucial para um bom projeto
M distribuio = sistemas frgeis, difceis de entender, manter, reusar e estender
GRASP responsabilidades
Obrigaes de conhecer algo
Conhecer dados encapsulados Conhecer objetos relacionados Conhecer coisas que se pode calcular
GRASP - Expert
O problema
Que classes devem fazer o que? Qual o princpio mais fundamental para atribuir responsabilidades?
GRASP - Expert
Soluo
Atribuir a responsabilidade ao especialista da informao a classe que possui a informao necessria para cumprir a responsabilidade
Exemplo
Calculo da venda
Ainda no terminamos
GRASP - Expert
GRASP - Expert
GRASP - Expert
obvio
Tudo isso pode ser decidido sem ter que fazer diagramas UML
GRASP - Expert
GRASP - Expert
GRASP - Expert
GRASP - Expert
Consideraes Finais
Dvidas?
FIM