Buscar

PADRÕES DE DESENVOLVIMENTO

Prévia do material em texto

- -1
DESENVOLVIMENTO DE SISTEMAS WEB
PADRÕES DE DESENVOLVIMENTO
- -2
Olá!
Ao final desta aula, você será capaz de:
1. Conhecer os princípios básicos dos Padrões de Projeto; 2. Compreender a importância da utilização de
padrões no desenvolvimento de software.
1 Padrões de Projetos
As ideias que deram origem aos padrões de projetos ocorreram em um contexto muito diferente da área de
Engenharia de Software.
Em 1977, o arquiteto Christopher Alexander e seus colegas publicaram o livro “A Pattern Language: Towns,
”, uma espécie de catálogo com 253 (duzentos e cinquenta e três) padrões construtivos,Buidings, Construction1
argumentando que os métodos tradicionais utilizados pela arquitetura não supriam as reais necessidades dos
usuários das construções propostas.
E desta forma, segundo os autores, a arquitetura não atendia a sociedade como deveria, pois seu maior objetivo é
melhorar a qualidade de vida das pessoas. Cada um dos padrões apresentados era como um pequeno manual
sobre a questão arquitetônica: descrevia um determinado problema em um ambiente e o cerne de sua solução,
de modo que essa solução pudesse ser utilizada várias vezes.
Fonte: JANDL, P.J. . São Paulo: Futura, 2003.Mais Java
THOMAZINO NETO, L.F. . Disponível na INTERNET via www.url: Padrões de Projeto http://bibdig.
 Arquivo consultado em: 26/12/2012poliseducacional.com.br/document/?code=92
1 ALEXANDER, C.; ISHIKAWA, S.; SILVERSTEIN, M.; JACOBSON, M.; FIKSDAHI-KING, I.; ANGEL, S. A Pattern
. New York: Oxford University Press, 1977Language: Towns, Buildings, Construction
Padrões são soluções de eficiência já comprovada e amplamente utilizadas para a resolução de problemas
comuns em projeto de software.
A aplicação de padrões é um exemplo de reuso de projeto, de ideias e soluções. O esforço extra gasto na fase de
projeto é compensado pelos ganhos em flexibilidade e reuso. Devido à complexidade dos softwares
desenvolvidos atualmente, os padrões de projetos facilitam muito a concepção dos sistemas.
Os padrões de projetos facilitam a comunicação entre os desenvolvedores, facilitam a reutilização de projetos
bem sucedidos, proporcionam uma maior tranquilidade quando for necessária a modificação de um projeto e
tem documentado todas as suas características, aplicabilidades e soluções.
http://bibdig.poliseducacional.com.br/document/?code=92
http://bibdig.poliseducacional.com.br/document/?code=92
- -3
Sendo assim, estudar e analisar padrões faz com que aprendamos com a experiência de outros na resolução de
principais problemas e permitindo que façamos mais rapidamente projetos de melhor qualidade com soluções
bem testadas e documentadas.
2 Estrutura de um padrão de desenvolvimento
Os principais atributos de uma boa descrição de um padrão de projeto são:
Nome Referência que descreve de forma bastante sucinta o padrão;
Problema
(Motivação, intenção, aplicabilidade): apresenta o contexto do padrão e quando ele
pode ser utilizado;
Solução Descreve a solução e os elementos que a compõem em solução.
Consequências
e padrões
relacionados
Análise dos resultados, das vantagens e desvantagens obtidas com a aplicação do
padrão.
1.1 Padrões GoF
Em 1995, Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm descreveram 23 (vinte e três) padrões que
podem ser aplicados ao desenvolvimento de sistemas de software orientados a objetos.
- -4
Os padrões GoF formam um catálogo de boas decisões de projeto. Trata-se de documentos de soluções através
da experiência. Foram coletados de experiências de sucesso na indústria de software, principalmente de projetos
em 
Classificação dos 23 padrões segundo GoF
São organizados em famílias de padrões, conforme o esquema:
Alguns exemplos
1 Criação
1.1 Padrão Singleton
• Intenção. Garantir que uma classe só tenha uma única instância, e prover um ponto de acesso global a ela.
• Motivação. Garantir que exista um determinado número X de objetos de uma classe.
• Aplicabilidade. Havendo a necessidade de existir apenas uma instância de uma classe e essa instância deve
dar acesso aos clientes através de um ponto bem conhecido.
1.2 Padrão Abstract Factory
• Intenção. Fornecer uma interface para criação de objetos relacionados sem especificar as suas classes
concretas.
• Motivação. Considere uma aplicação com interface gráfica que é implementada para plataformas diferentes. As
classes implementando os elementos gráficos não podem ser definidas estaticamente no código. Há necessidade
- -5
de uma implementação diferente para cada ambiente. como, por exemplo, implementar diferentes aparências (
).look-and-feels
• Aplicabilidade. Use uma fábrica abstrata quando:
Um sistema deve ser independente da forma como seus produtos são criados e representados.
2 Estruturais
2.1 Padrão Adapter Também conhecido como WRAPPER.
• Intenção. Converter a interface de uma classe em outra interface, esperada pelos clientes. Permite que classes
com interfaces incompatíveis trabalhem em conjunto.
• Motivação. Algumas vezes uma classe não é reusavel porque sua interface não é compatível com a interface de
uma aplicação de um domínio específico. A solução é criar um objeto adaptador, que encapsule e filtre as
características peculiares da classe adaptada, fornecendo uma interface que a aplicação espera utilizar.
• Aplicabilidade. Use o Padrão Adapter quando você quiser:
Utilizar uma classe existente, e sua interface não for compatível com uma que você necessita.
Criar uma classe reusável que coopera com classes não-relacionadas ou não previstas a priori, isto é, classes que
não apresentam necessariamente interfaces compatíveis.
2.2 Padrão Bridge Também conhecido como handle/Body.
• Intenção. Desacoplar uma abstração de sua implementação, de modo que as duas possam variar
independentemente.
• Motivação. Quando uma abstração pode ter várias implementações, a solução usual é acomodar todas as
implementações através de herança. No entanto, herança liga de forma permanente uma abstração a uma
implementação. O padrão Bridge permite colocar as abstrações e suas implementações em diferentes
hierarquias de classes, e permite que variem de forma independente.
• Aplicabilidade. Use Quando Quiser evitar ligação permanente entre uma abstração e sua implementação.
3 Comportamentais
3.1 Padrão Observer
• Intenção. Definir uma dependência de um para muitos com um mecanismo de notificação de eventos.
• Motivação. A mesma informação (modelo) pode ser exibida em diferentes formatos (visão) em paralelo.
• Aplicabilidade. Quando uma abstração apresenta dois aspectos, um dependente do outro. Encapsulando estes
aspectos em objetos separados permite que você os varie e reutilize de forma independente.
3.2 Padrão Strategy
• Intenção. Define uma família de algoritmos, encapsula cada um, e os faz intercambiáveis. Permite que o
algoritmo varie independentemente dos clientes que o utilizam.
- -6
• Motivação. Alguns algoritmos se repetem com frequência, por isso devem ser isolados para facilitar a
manutenção.
• Aplicabilidade. Utilize quando alguns algoritmos se repetirem com frequência, por isso devem ser isolados
para facilitar a manutenção.
O que vem na próxima aula
Na próxima aula, você vai estudar:
• Arquitetura MVC: Modelos I e II;
• Implementação do MVC Modelo II e Gerenciamento de Sessão e Login.
CONCLUSÃO
Nesta aula, você:
• Conheceu os Padrões de Projeto: suas motivações, benefícios, consequências e aplicações.
Saiba mais
Saiba Mais
Saiba mais sobre Padrões de Projeto:
FREEMAN, E.; FREEMAN, E. Use a Cabeça! Padrões de Projetos. São Paulo: Alta Books, 2007.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projeto. Porto Alegre: Bookman,
2005.
Referências Bibliográficas:
GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projeto. Porto Alegre: Bookman,
2005.
JANDL, P.J. Mais Java. São Paulo: Futura, 2003.
ROCHA, H. Padrões de Design com Aplicações Java. Disponível na INTERNET via url: //www.
argonavis.com.br/cursos/java/j930/tutorial/Design_Patterns.pdfArquivo consultado em: 26
/12/2012
RONAN, J. Padrões GoF. Disponível na INTERNET via www.url: //www.cin.ufpe.br/~jrjs/pec-
12-patterns-gof.ppt Arquivo consultado em: 26/12/2012
THOMAZINO NETO, L.F. Padrões de Projeto. Disponível na INTERNET via www.url: //bibdig.
poliseducacional.com.br/document/?code=92 Arquivo consultado em: 26/12/2012
•
•
•
	Olá!
	1 Padrões de Projetos
	2 Estrutura de um padrão de desenvolvimento
	1.1 Padrões GoF
	O que vem na próxima aula
	CONCLUSÃO

Mais conteúdos dessa disciplina