Anda di halaman 1dari 37

Padres de Projeto Grasp - Expert

Rodrigo da Cruz Fujioka rodrigofujioka@gmail.com


Mtodos Avanados de Programao

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?

O que so Padres de Projeto


Na prtica:
Descreve uma soluo que pode ser reutilizada milhes de vezes para resolver um problema que se repete constantemente Cada padro descreve um problema no nosso ambiente e o cerne da sua soluo, de tal forma que voc possa usar essa soluo milhes de vezes, sem nunca faz-lo da mesma maneira
(Christopher Alexander, sobre padres em Arquitetura)
8

O que so Padres de Projeto


Um Design Pattern no uma classe ou uma biblioteca que voc inclui em seus arquivos. muito mais que isso. uma metodologia que deve ser seguida no desenvolvimento de um projeto, seja ele no ramo de desenvolvimento de software, de construo civil, de engenharia, etc. Descrevem solues para problemas recorrentes no desenvolvimento de um projeto. Os padres de projeto visam facilitar a reutilizao de solues na fase de projeto.
9

Padres de Projeto
Padres contm o somatrio da experincia dos melhores projetistas O-O!
Entre vrias situaes, isolar o que muda do que igual

Design Patterns iniciaram a febre de padres


Analysis Patterns Testing Patterns Business Patterns Pedagogical Patterns
10

O que so Padres de Projeto


Reaproveitam-se classes e suas colaboraes
Reuso de idias, no de cdigo

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

Porque utilizar padres de projeto

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

Porque No utilizar padres de projeto

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

GRASP Expert antes de tudo


Um sistema OO composto de objetos que enviam mensagens uns para os outros
Uma mensagem um mtodo executado no contexto de um objeto

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 Expert responsabilidades


So obrigaes de um tipo ou de uma Classe Obrigaes de fazer algo
Fazer algo a si mesmo Iniciar aes em outros objetos Controlar ou coordenar atividades em outros objetos

GRASP responsabilidades
Obrigaes de conhecer algo
Conhecer dados encapsulados Conhecer objetos relacionados Conhecer coisas que se pode calcular

Exemplo: Responsabilidade de fornecer acesso a um BD


Isso no quer dizer que a classe sempre ter que fazer tudo sozinha.

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

Analisar Diagrama abaixo

Exemplo

Calculo da venda

Diagrama de Colaborao de Classes

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

Exerccio e Listas Amanh no grupo


E no final seja

Consideraes Finais
Dvidas?

FIM

Anda mungkin juga menyukai