Uma Noção Intuitiva dos Padrões de Desenho de Software - PUC-SP

Propaganda
1
1
Uma Noção Intuitiva dos
Padrões de Desenho de
Software
Prof. Dr. Italo S. Vega
[email protected]
5 de dezembro de 2001
São Paulo, SP
Copyright © 2001, ISVega
Dezembro de 2001
2
Agenda
Motivação (5 min.)
Padrões (20 min.)
Exemplo (10 min.)
Conclusões (5 min.)
40 min.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
2
3
Motivação
5 min.
Copyright © 2001, ISVega
Dezembro de 2001
4
Inspiração
“Padrões do mundo real são
repetitivos -- sob certas
circunstâncias -- pois sempre
existirão formas de
relacionamentos ajustadas às
forças existentes naquelas
circunstâncias.”
Christopher Alexander
Def. Padrão é uma solução
genérica para um determinado
sistema de forças no mundo.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
3
5
Padrões em Sistemas de SW
Em software OO, objetos do mundo real são
transformados em software e hardware, produzindo
resultados reais.
Obs 1. Objetos do mundo real se adaptaram para lidar
com certas forças presentes no contexto onde eles se
encontram.
Obs 2. Os relacionamentos entre tais objetos podem ser
observados tanto no mundo real, quanto nos objetos de
software.
Copyright © 2001, ISVega
Dezembro de 2001
6
Padrões
Builder
Adapter
Decorator
Façade
Proxy
Interpreter
Iterator
20 min.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
4
7
Padrão: Builder
Descrição. Separa a
construção de um objeto
complexo da sua
representação, de modo que
o mesmo processo de
construção possa criar
diferentes representações.
Exemplo: montagem de um
lanche pelo caixa (builder).
Pedido típico: lanche
principal,
acompanhamento, bebida
e um brinde.
Padrão: o processo de
construção do lanche é
sempre o mesmo,
ocorrendo variação em
alguns ingredientes.
pedido
cliente
caixa
ajudante
incluir
incluir
incluir
incluir
pedido
Copyright © 2001, ISVega
Dezembro de 2001
8
Padrão: Adapter
Descrição. Adapta duas classes incompatíveis de modo
que possam atuar em conjunto.
Exemplo: adaptador de rosca de torneira.
Padrão: um adaptador de rosca de torneira permite que
encanamentos com diâmetros distintos possam ser
conectados.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
5
9
Padrão: Decorator
Descrição. Acrescenta,
dinamicamente, novas
propriedades a um objeto.
Exemplo: ornamentos
natalinos (decorators).
Ornamentos: lâmpadas,
bolas, velas, estrelas,
cartões, acrescentados a
uma pinheiro.
Padrão: os ornamentos
não alteram o pinheiro
propriamente dito, mas ele
passa a ser conhecido por
“árvore de Natal”.
Copyright © 2001, ISVega
Dezembro de 2001
10
Padrão: Façade
Descrição. Define uma
interface unificada e de alto
nível para um subsistema,
facilitando o seu uso.
Exemplo: atendente
(façade).
Compra por telefone: o
cliente seleciona o produto
de um catálogo e fala com
um atendente.
Padrão: o atendente atua
como uma interface para o
departamento de vendas,
o departamento de
cobrança e o
departamento de entrega.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
cliente
atendente
compra
(calça,
cartão,
endereço)
vendas
calça
cobrança
cartão
entrega
endereço
Dezembro de 2001
Dezembro de 2001
6
11
Padrão: Proxy
Descrição. Atua como um substituto ou procurador de
um objeto.
Exemplo: cheque bancário (proxy).
Padrão: um cheque pode ser usado no lugar do dinheiro
disponível na conta-corrente de um cliente.
substituído
n
Copyright © 2001, ISVega
Dezembro de 2001
12
Padrão: Interpreter
Descrição. Define uma
representação gramatical
de uma linguagem e um
interpretador para
interpretar a gramática.
Exemplo: músico
(interpreter).
Padrão: notação musical
define o tom e duração de
uma nota (linguagem
musical); o músico
interpreta a notação e toca
o instrumento,
reproduzindo a música.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
7
14
Exemplo
10 min.
Copyright © 2001, ISVega
Dezembro de 2001
15
Evolução
A empresa XYZ pretende
substituir um módulo de
negócio que recebe dados
via uma rede de
comunicação que utiliza o
protocolo X25. O novo
módulo de negócio utiliza o
protocolo TCP/IP, e
reutiliza a mesma base de
dados do módulo em
substituição. O sistema,
como um todo, deve
reaproveitar as telas
originais, sendo que várias
têm acesso à base de
dados, e algumas devem
interagir com o novo
módulo de negócio.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
«remote»
Servidor
«system»
XYZ
X25
Tela
1
Módulo de
Negócio
Antigo
Tela
2
Base de
Dados
Dezembro de 2001
Dezembro de 2001
8
17
Agenda
Motivação (5 min.)
Padrões (20 min.)
Exemplo (10 min.)
Conclusões (5 min.)
5 min.
Copyright © 2001, ISVega
Dezembro de 2001
18
Conclusões
Exemplos são úteis para aumentar o poder expressivo
dos padrões.
Exemplos ajudam na aprendizagem do processo de
elaboração de modelos.
Exemplos ajudam a explorar conhecimento anterior para
entender novos conceitos.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
9
19
Referências
Alexander, C. The Timeless Way of Building. Oxford
University Press, Nwe York, NY, 1979.
Duell, M. Non-Software Examples of Software Design
Patterns. Object Magazine, July 1997, pp. 52-57.
Gamma, E. R., et al. Design Patterns - Elements of
Reusable Object-Oriented Software. Addison-Wesley,
Reading, MA, 1995.
Copyright © 2001, ISVega
Copyright © 2001, ISVega
Dezembro de 2001
Dezembro de 2001
Download