• Nenhum resultado encontrado

Padrões de Projeto

N/A
N/A
Protected

Academic year: 2022

Share "Padrões de Projeto"

Copied!
37
0
0

Texto

(1)

Padrões de Projeto Grasp - Expert

Rodrigo da Cruz Fujioka [email protected]

Métodos Avançados de Programação

(2)

Padrões de Projeto

Objetivos Objetivos

GRASP GRASP

GRASP – EXPERT

(3)

Padrões de Projeto

Conhecer as peças, tabuleiro e regras do jogo de xadrez não são suficientes para definir um

grande jogador.

(4)

Padrões de Projeto

• Conhecer e compreender as técnicas,

estratégias e jogadas dos grandes mestres é

recomendável.

(5)

Padrões de Projeto

Conhecer a sintaxe, semântica, estruturas e

regras de uma linguagem orientada a objetos

não é suficiente para definir um bom

projetista.

(6)

Padrões de Projeto

• Conhecer e compreender as técnicas,

estratégias e soluções dos grandes projetistas

é recomendável.

(7)

Padrões de Projeto

• Afinal de contas o que é um padrão?

(8)

O que são Padrões de Projeto

• Na prática:

– “Descreve uma solução que pode ser reutilizada milhões de vezes para resolver um problema que se repete constantemente“

se repete constantemente“

“ Cada padrão descreve um problema no nosso ambiente e o cerne da sua solução, de tal forma que você possa usar essa solução milhões de

vezes, sem nunca fazê-lo da mesma maneira”

(9)

O que são Padrões de Projeto

• Um Design Pattern não é 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 construção civil, de engenharia, etc.

9

engenharia, etc.

Descrevem soluções para problemas recorrentes no desenvolvimento de um projeto.

Os padrões de projeto visam facilitar a reutilização de

soluções na fase de projeto.

(10)

Padrões de Projeto

• Padrões contêm o somatório da experiência dos melhores projetistas O-O!

– Entre várias situações, isolar o que muda do que é igual

Design Patterns iniciaram a febre de padrões

• Design Patterns iniciaram a febre de padrões

– Analysis Patterns

– Testing Patterns

– Business Patterns

– Pedagogical Patterns

(11)

O que são Padrões de Projeto

• Reaproveitam-se classes e suas colaborações

– Reuso de idéias, não de código

11

(12)

Definição

• Maneira eficaz de fazer algo, de atingir um objetivo

• Mesma idéia para cozinhar, dirigir e

• Mesma idéia para cozinhar, dirigir e desenvolver software

• Jargões são utilizados dentro de uma atividade para se referir a uma determinada situação ou

“coisa”

(13)

Porque utilizar padrões de projeto

(14)

Definição

• Pela facilidade de manutenção, pela escalabilidade do projeto, reutilização de material, organização e

padronização internacional, podendo seu projeto ser mantido por pessoas que vivem em outro país e falam outro idioma por exemplo.

outro idioma por exemplo.

• Como Design Patterns é uma metodologia, pode ser aplicada a qualquer situação. No ramo de

desenvolvimento de software essa metodologia pode

ser aplicada a qualquer linguagem de programação.

(15)

Porque Não utilizar padrões de projeto

(16)

Por quê padronizar

• Transformar jargões em PADRÕES

• Documentação = queremos garantir que o conhecimento acumulado sobre uma ação será preservado para futuras gerações

gerações

• Padrões de projeto

– Estão em um nível acima do código

– Como programar OO mais eficientemente

– Prover reusabilidade,

flexibilidade, legibilidade

(17)

GOF

• Gang of Four descreve 23 padrões que não são os únicos mas são os mais utilizados

• Padrões de Larman = GRASP

– General Responsability Assignment Software Patterns – General Responsability Assignment Software Patterns

• Expert

• Creator

• Fraco acoplamento

• Alta coesão

(18)

GRASP – Expert – antes de tudo

• Um sistema OO é composto de objetos que enviam mensagens uns para os outros

– Uma mensagem é um método executado no contexto de um objeto

• Escolher como distribuir as responsabilidades entre objetos (ou classes) é crucial para um bom projeto

(ou classes) é crucial para um bom projeto

– Má distribuição = sistemas frágeis, difíceis de entender, manter, reusar e estender

(19)

GRASP – Expert – responsabilidades

• São obrigações de um tipo ou de uma Classe

• Obrigações de fazer algo

– Fazer algo a si mesmo – Fazer algo a si mesmo

– Iniciar ações em outros objetos

– Controlar ou coordenar atividades em outros objetos

(20)

GRASP – responsabilidades

• Obrigações de conhecer algo

– Conhecer dados encapsulados – Conhecer objetos relacionados

– Conhecer coisas que se pode calcular

• Exemplo: Responsabilidade de fornecer acesso a um BD

– Isso não quer dizer que a classe sempre terá que fazer tudo sozinha.

(21)

GRASP - Expert

• O problema

– Que classes devem fazer o que?

– Qual é o princípio mais fundamental para atribuir responsabilidades?

(22)

GRASP - Expert

• Solução

– Atribuir a responsabilidade ao especialista da informação - a classe que possui a informação necessária para cumprir a responsabilidade

(23)

Analisar Diagrama abaixo

(24)

Exemplo

(25)

Calculo da venda

(26)

Diagrama de Colaboração de Classes

(27)

Ainda não terminamos

(28)

GRASP - Expert

(29)

GRASP - Expert

(30)

GRASP - Expert

(31)

• Tudo isso pode ser decidido sem ter que fazer diagramas UML

É obvio

(32)

GRASP - Expert

(33)

GRASP - Expert

(34)

GRASP - Expert

(35)

GRASP - Expert

(36)

Exercício e Listas Amanhã no grupo

E no final seja

(37)

Considerações Finais

Dúvidas?

FIM

Referências

Documentos relacionados

O processo de conhecimento dos princípios da corrosão e da proteção anticorrosiva, bem como de sua adequação prática no campo da engenharia de equipamentos, tem sido um desafio

 O plano estratégico ajuda também a definir outro bloco de atividades que consiste no Plano de qualificação e redimensionamento da força de trabalho, e na Estrutura

“Regulamenta as disposições do Imposto Sobre Serviço de Qualquer Natureza – ISSQN, contidas na Lei nº 3020/1998 e suas alterações, institui o Gerenciamento Eletrônico do ISSQN

O produto gerado pelo presente trabalho contará com uma interface gráfica representando o tabuleiro e as peças do jogo de xadrez, bem como a execução dos movimentos de cada peça

Tunga: exculturas, Gabinete de Arte Raquel Arnaud, São Paulo, Brazil Tunga, Galeria Saramenha, Rio de Janeiro, Brazil.. Tunga, Museu de Arte da UFMT,

As informações trimestrais acima referidas incluem as Demonstrações do Valor Adicionado (DVA), individuais e consolidadas, referentes ao período de seis meses

Confirmando nossos resultados sobre o envolvimento do sistema serotoninérgico durante a instalação das convulsões límbicas, foi verificado que a diminuição dos níveis de

Com relação às peças do Jogo de Xadrez, essas possuem movimentos diferentes os quais produzem padrões específicos no tabuleiro conforme afirmam Ferreira e