Este documento apresenta uma introdução aos padrões de projeto, definindo-os como soluções comuns aplicadas a problemas recorrentes no contexto do projeto de software. Ele explica a origem dos padrões de projeto no trabalho de Christopher Alexander e descreve os principais componentes de um padrão de projeto segundo a linguagem de padrões.
2. AULA 1
A O FIM DESTA AULA VOCÊ SERÁ CAPAZ DE:
▸ Compreender o que são padrões de projeto.
▸ Aprender a origem dos padrões de projeto.
▸ Iniciar o entendimento de como são descritos e
estruturados padrão de projeto na linguagem de padrões.
5. PADRÕES DE PROJETO
ORIGEM
⦿ Os padrões de projeto surgiram com
●Christopher Alexander nos anos 70.
●The Timeless Way of Building
(1979)
⦿ Descreve
●Soluções comuns de arquitetura
●Como essas soluções se unem
para formar um ambiente coesivo e
habitável
●Padrões do urbanismo para
detalhes decorativos
7. PADRÕES DE PROJETO
O QUE É UM PADRÃO DE PROJETO?
▸ Patterns = Um definição simples é uma solução conhecida
aplicada a um problema em um contexto determinado.
▸ É uma solução geral para um problema que ocorre com
frequência dentro de um determinado contexto no projeto
de software.
9. PADRÕES DE PROJETO
PADRÕES DE PROJETO
▸ Facilitam o reuso de soluções de arquiteturas e projeto
▸ Não é reuso de código
▸ Reuso de soluções e estratégias
▸ As vezes, reuso de interface
14. Gang of Four - O Livro
• O livro que iniciou o
uso de padrões de
projeto em
engenharia de
software
• Comunidade se refere
aos autores como
“Gang of Four”
17. PADRÕES DE PROJETO
COMPONENTES DE UM PADRÃO DE PROJETO - LINGUAGEM DE PADRÕES
▸ NOME
O nome facilita a comunicação e
referência ao padrão
18. PADRÕES FACILITAM A COMUNICAÇÃO ENTRE ESPECIALISTAS
Vamos criar objetos únicos para os
quais há apenas uma instância,
oferecendo um ponto de acesso
global, assim como uma variável
global, porém sem as desvantagens
das variáveis globais.
PADRÕES DE PROJETO
Vamos usar o Singleton !!!
19. PADRÕES DE PROJETO
USANDO PADRÕES DE PROJETO
Podemos receber notificações quando um evento acontece?
• Yes, we can! – Observer
• Podemos desfazer a ultima operação realizada?
• Yes, we can! – Memento and Command
• Podemos acessar os elementos de uma coleção de forma
sequencial?
• Yes, we can! – Iterator
20. PADRÕES DE PROJETO
▸ NOME
▸ Pattern alias – “also known as” (Apelido)
COMPONENTES DE UM PADRÃO DE PROJETO - LINGUAGEM DE PADRÕES