Professional Documents
Culture Documents
Engenharia da Web
Padrões de Projeto em Aplicações Web
1
Objetivos da Aula
2
Padrões de Projeto
Padrões de Projeto
➢ Padrões de projeto são boas soluções aplicadas a
boa parte de problemas comuns em um
determinado contexto.
➢ Padrões de projeto beneficiam a construção, a
manutenção e o reuso do código.
➢ Criam uma linguagem compreendida por todos
➢ Facilitam a mentalização da solução
➢ São propostas em alto nível (sem detalhes de
implementação) para problemas recorrentes
4
Padrão de Projeto segundo Gamma (1995)
➢ Gamma (1995) diz que padrões são soluções para
um problema em um determinado contexto, onde
devem ser identificados:
➢ O Contexto – qual se refere ao conjunto de situações
que se repetem, nas quais o padrão de projeto pode ser
aplicado;
➢ O Problema – que trata do conjunto de "forças" –
objetivos e limitações – que ocorrem dentro do contexto;
➢ A Solução – que é uma estrutura formal para ser
aplicada na resolução do problema.
5
Início histórico: na arquitetura de
construção/urbanismo
1977
1995
2006
7
Padrões na arquitetura
O Arco
• Um padrão usado para distribuir o peso em estruturas de
construção
• Reutilizável em diferentes contextos
• Um componente de apoio (subjacente)
• Um componente essencial na construção de grandes estruturas 11
Com o “arco” podemos...
16
Patterns para aplicações web
➢ Na literatura, padrões de projeto para aplicações web
podem ser tratados em pelo menos três dimensões ou
preocupações:
➢ Voltados para o design de interface ou visual – são os
padrões mais “visíveis”, aqueles que trabalham a visualização
dos sistemas na web, focando a apresentação e formatação
do conteúdo.
➢ Voltados para interação e navegação – dizem respeito à
dinâmica da interação do usuário com a aplicação, ponto
crucial para o sucesso da aplicação web
➢ Voltados para a arquitetura de construção – são os padrões
que fornecem a infraestrutura para desenvolvimento do
software da aplicação web, que tratam desde a modelagem e
organização dos componentes de software, até o projeto
(design) da solução.
17
Exemplo de um padrão para projeto de
Problema interação
Grande volume de dados
a serem exibidos.
Usuário necessita
visualizar os detalhes,
mas deseja ver todos os
dados de uma só vez
(visão geral do todo).
Solução
Painel de visão geral
(topo ou lateral
esquerda)
Painel de detalhe
(rodapé ou lateral
direita) 18
Exemplo de Padrão em Aplicações Web
(comerciais)
➢ Carrinho de Compras (Shopping Cart)
➢ Problema
➢ Usuários querem comprar produtos em uma loja virtual.
➢ Solução
➢ Crie a metáfora do “carrinho de compras”, onde o usuário pode
selecionar os produtos antes de realizar o pagamento.
22
Tipos de Padrões (Software)
➢ Padrão Arquitetural
➢ Estrutura básica de um sistema de software.
➢ Ex: padrão MVC (Modelo-Visão-Controlador)
➢ Padrão de Projeto
➢ Estrutura recorrente, micro-arquitetura de
componentes organizados para resolver um
problema genérico em um contexto específico.
➢ Ex: padrões OO (Singleton, Command, etc)
➢ Padrões web: padrões de interação, navegação, etc.
➢ Idioma
➢ Padrão específico associado a linguagens de
programação.
➢ Padrão das tecnologias EJB (DTO, Bussiness, etc)
Classificação de Padrões
➢ Não existe um método rígido para realizar uma
classificação de padrões
➢ Em geral, alguns autores tentam usar abordagens
ligadas aos aspectos do desenvolvimento do ciclo
de vida de uma aplicação web.
➢ Gamma propôs padrões para tratar projeto
orientado a objetos.
24
Padrões da Gang of Four (GoF)
25
Padrões de Projeto de GoF (Gamma)
➢ 26
Padrões GoF
➢ Padrões Criacionais
➢ Associados ao processo de criação de objetos
➢ Tornam um sistema independente de como seus
objetos são criados, compostos e representados
➢
Padrões GoF
➢ Estruturais
➢ Tratam de compor classes e objetos para formar estruturas grandes e
complexas
➢ Associados à maneira como classes e objetos são organizados
estruturalmente
➢ Oferecem formas efetivas para usar conceitos OO, como herança,
agregação e composição
➢ Focam na abstração da estrutura
Padrões GoF
➢ Comportamentais
➢ Tratam de algoritmos e como atribuir responsabilidades
entre objetos
➢ Associados à maneira que objetos e classes distribuem
suas responsabilidades para realizar uma tarefa
➢ Focam na abstração do comportamento.
Classificação de Padrões Web
(segundo Gérman, 2000)
➢ Germán (2000) propõe uma classificação em
domínios de aplicações e interesses específicos:
➢ a) Arquitetônico. Padrões que ajudam o desenvolvedor no projeto da
estrutura global da aplicação – sua estrutura gráfica, como: Ciclo, Contraponto,
Mirrorworld, Nó, Seleção, Montagem, elo, vizinhança, Quebra/Ligação
(Split/Join).
31
Atividade
34