Professional Documents
Culture Documents
No artigo dessa semana, estaremos abordando os design patterns, ou padres de modelagem, que podem ser definidos como solues j
testadas para problemas de modelagem que ocorrem com freqncias em situaes especficas. Um assunto que interessa tanto as
comunidades Java ou .NET.
por Eric C M Oliveira
No artigo dessa semana, estaremos abordando os design patterns, ou padres de modelagem, que podem ser definidos como
solues j testadas para problemas de modelagem que ocorrem com freqncias em situaes especficas. Um assunto que
interessa tanto as comunidades Java ou .NET.
Como vrias abordagens referentes a engenharia de software, os design patterns tiveram suas razes no trabalho do engenheiro
civil Chistopher Alexander, que redigiu sobre as suas experincias em resolver problemas de projetos encontrados em
construes em geral. Segundo o prprio Christopher, "cada pattern descreve um problema que ocorre com freqncia em nosso
ambiente, e ento descreve o ncleo da soluo para tal problema, de uma maneira que possamos utilizar esta soluo milhares
de vezes".
Os princpios de Alexander foram trazidos para o desenvolvimento de software, que culminou na publicao da obra "Design
Patterns: Elements of Reusable Object-Oriented Software", de 1995 por Eric Gamma, Richard Helm, Ralph Johnson e John
Vlissides. Este livro considerado a principal referncia de design patterns para a comunidade de software e tem influenciado na
evoluo dos padres de projeto desde ento. A obra descreveu 23 padres baseados na experincia dos autores. Muitos outros
padres foram documentados e catalogados desde a publicao de Design Patterns. Entretanto, esses 23 iniciais so
provavelmente os mais populares.
Em termos de documentao, os design patterns so altamente estruturados.Eles so documentados a partir de um modelo que
identifica a informao necessria para entender o problema do software e a soluo em termos de relacionamentos entre as
classes e objetos necessrios para implementar essa soluo. No h um ponto comum na comunidade de design patterns sobre
como descrever um template de patterns. Alguns autores preferem ser mais expressivos e menos estruturados, enquanto outros
preferem que seus templates sejam mais precisos e altamente estruturados.
A UML tem papel importante nessa documentao. comumente usada para descrever patterns e cataloga-los, incluindo
diagrama de classes, de seqncia ou de interaes. Abaixo um exemplo de um diagrama de seqncia do pattern MVC:
Participantes [Descreve as classes e objetos que participam do design pattern e suas responsabilidades].
Colaboraes [Descreve como os participantes colaboram para cumprir com suas responsabilidades].
Conseqncias [Descreve os benefcios e os custos da utilizao do padro].
Raramente um pattern utilizado isoladamente. Tipicamente, os patterns tem relacionamentos e trabalham em conjunto. Quanto
mais familiarizado com os diferentes tipos de design patterns, melhor instrudo se estar para determinar interaes entre esses
componentes.
Como exemplo de aplicaes em camadas com uso de componentes, existem quatro patterns especficos, com caractersticas de
melhora de performance de um sistema e facilidade de manuteno. So eles MVC, DAO, DTO e Session Faade.
Um dos mais usados nos dias de hoje o design pattern MVC, que permite que se separe o modelo de dados das vrias formas
que o dado possa ser acessado e manipulado. Um sistema MVC dividido em um modelo de dados, um conjunto de vises e um
conjunto de controladores. Na verdade existem quatro componentes em uma aplicao MVC, no trs, j que o cliente uma
parte integrante de toda a operao. Desacoplar as vises do processo de requisio torna mais fcil criar novas vises para
novos formatos. Uma aplicao poderia apresentar uma interface HTML e depois adicionar vises WML (para dispositivos
wireless) e vises XML (para Web services) futuramente.
Os patterns tambm no devem ser encarados como uma "bala de prata". Deve-se ter a conscincia de que apenas porque um
problema observado e um pattern aplicado, no se deve imaginar que se tem em mos uma perfeita aplicao ou soluo
para o problema aplicado. Devemos encara-los como um caminho para trazer clareza para uma arquitetura de um sistema, alm
de permitir possibilidades de melhora nesse determinado sistema.
Orientao a objetos
Objeto / Instncia
Classe
Abstrao
Atributo
Mtodos
Mensagem
Encapsulamento
Associao
Polimorfismo
Interface
Outras referncias
Paradigma de programao
Padres de projeto
UML / RUP
Engenharia OO
ve
seu nome,
o problema,
suas consequncias.
Os padres de projeto :
1Histria
2.1Padres de criao
2.2Padres estruturais
2.3Padres comportamentais
3Padres GRASP
3.1Padres
4Crticas
5Bibliografia
6Referncias
7Ligaes externas
Abertura: um padro deve permitir a sua extenso para nveis mais baixos de
detalhe.
Abstract Factory
Builder
Factory Method
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Flyweight
Proxy
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor
Especialista na Informao
Polimorfismo
Indireo
Variaes Protegidas