A crescente necessidade do mercado de obter produtos e serviços cada vez mais competitivos, traz consigo a necessidade de se buscar excelência em um determinado produto final. Na área dos sistemas de software não é diferente. Quando conceitos como padronização e reusabilidade são encorajados visando a qualidade (na criação) e agilidade (na manuteção) de um determinado produto de software, é pretendível que seja dada uma amplitude maior em soluções técnicas baseadas no conceito de “boas práticas” de desenvolvimento. Padrões de projeto, ou design patterns, visam resolver soluções em contextos diferentes sem que essa solução precise ser reescrita para ser implementada. Quando design patterns são implementados, desenvolvedores mais experientes já implementaram, testaram e catalogaram uma determinada solução para que a mesma possa ser usada em contextos diferentes. Este trabalho apresenta o conceito de desing patterns e reusabilidade, bem como conceitos preliminares como orientação a objetos. Também será abordado um estudo de caso, onde foram implementados alguns padrões de projeto na linguagem PHP5.
1. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Design Pattern e a Reusabilidade de Software
Trabalho de Conclus˜o de Curso
a
Klevison de Barros Matias Jos´ Ten´rio C. Costa
e o
Ciˆncia da Computa¸˜o
e ca
Faculdade Alagoana de Administra¸˜o
ca
Setembro de 2009
1 / 27
2. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o aos Padr˜es de Projeto
ca o
Design Patterns
Contexto
Aplica¸˜o Pr´tica
ca a
Advento
Conclus˜oa
Referˆncias
e
Conte´do
u
1 Introdu¸˜o
ca
Introdu¸˜o aos Padr˜es de Projeto
ca o
Contexto
Advento
2 Funcamenta¸˜o Te´rica
ca o
Orienta¸˜o a Objetos
ca
Reusabilidade de Software
3 Design Patterns
Introdu¸˜o
ca
Conceito
Motiva¸˜o
ca
4 Aplica¸˜o Pr´tica
ca a
Patterns
5 Conclus˜o
a
Conclus˜es Finais
o 2 / 27
3. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o aos Padr˜es de Projeto
ca o
Design Patterns
Contexto
Aplica¸˜o Pr´tica
ca a
Advento
Conclus˜oa
Referˆncias
e
Tema
O presente trabalho visa abordar os principais conceitos relativos a
reusabilidade e Padr˜es de Projeto de Software, os quais descrevem
o
poss´ıveis solu¸˜es de problemas comuns encontrados em projetos
co
orientados a objetos (Meyer, 1997).
3 / 27
4. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o aos Padr˜es de Projeto
ca o
Design Patterns
Contexto
Aplica¸˜o Pr´tica
ca a
Advento
Conclus˜oa
Referˆncias
e
Reusabilidade
A complexidade de desenvolvimento de software ´ cada vez mais
e
crescente e o processo de desenvolvimento ´ ainda muito baseado
e
em empirismo e sujeito a erros (Gerber, 1999). Para diminuir essa
complexidade, o conceito de padroniza¸˜o surgiu para atender a
ca
reutiliza¸˜o (no que tange ` produtividade).
ca a
4 / 27
5. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o aos Padr˜es de Projeto
ca o
Design Patterns
Contexto
Aplica¸˜o Pr´tica
ca a
Advento
Conclus˜oa
Referˆncias
e
Design Patterns
Ao se padronizar todo esse processo de desenvolvimento,
permite-se que:
conceitos adotados e desenvolvidos por programadores mais
experientes sejam transmitidos de forma clara para os
programadores novos no projeto ou inexperientes;
haja facilidade na comunica¸˜o entre a equipe de
ca
desenvolvimento.
5 / 27
6. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o aos Padr˜es de Projeto
ca o
Design Patterns
Contexto
Aplica¸˜o Pr´tica
ca a
Advento
Conclus˜oa
Referˆncias
e
Conceito de Patterns
Todo o conceito de Padr˜es de Projeto foi criado pelo engenheiro
o
civil Cristopher Alexander. Em A Pattern Language: Towns,
Buildings, Constructions, Alexander afirmou
Um pattern descreve um problema que ocorre com
frequˆncia em nosso ambiente, e ent˜o explica a essˆncia
e a e
da solu¸˜o para este problema, de forma que tal solu¸˜o
ca ca
possa ser utilizada milh˜es de outras vezes, sem ao
o
menos repeti-la uma unica vez.
´
6 / 27
7. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o aos Padr˜es de Projeto
ca o
Design Patterns
Contexto
Aplica¸˜o Pr´tica
ca a
Advento
Conclus˜oa
Referˆncias
e
Conceito de Patterns
Ao dizer isto Cristopher estava se referindo a padr˜es para
o
constru¸˜es, como pr´dios, pontes, dentre outros. Apesar disso,
co e
essas palavras podem ser perfeitamente utilizadas no contexto de
engenharia de software (Oglio, 2007).
7 / 27
8. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns Orienta¸˜o a Objetos
ca
Aplica¸˜o Pr´tica
ca a Reusabilidade de Software
Conclus˜oa
Referˆncias
e
Conte´do
u
1 Introdu¸˜o
ca
Introdu¸˜o aos Padr˜es de Projeto
ca o
Contexto
Advento
2 Funcamenta¸˜o Te´rica
ca o
Orienta¸˜o a Objetos
ca
Reusabilidade de Software
3 Design Patterns
Introdu¸˜o
ca
Conceito
Motiva¸˜o
ca
4 Aplica¸˜o Pr´tica
ca a
Patterns
5 Conclus˜o
a
Conclus˜es Finais
o 8 / 27
9. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns Orienta¸˜o a Objetos
ca
Aplica¸˜o Pr´tica
ca a Reusabilidade de Software
Conclus˜oa
Referˆncias
e
Entender sistemas orientado a objetos ´ a arte de combinar o
e
concreto (objetos e suas intera¸˜es) com o abstrato (classes e seus
co
relacionamentos) (Lange & Nakamura, 1995).O concreto descreve
o que o n´s podemos ver de uma execu¸˜o do sistema e o abstrato
o ca
descreve o que n´s podemos esperar de um sistema.
o
9 / 27
10. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns Orienta¸˜o a Objetos
ca
Aplica¸˜o Pr´tica
ca a Reusabilidade de Software
Conclus˜oa
Referˆncias
e
Introdu¸˜o
ca
Com a evolu¸˜o de conceitos como orienta¸˜o a objetos os
ca ca
projetistas mais experientes perceberam que determinadas
solu¸˜es de projeto poderiam ser aplicadas em diferentes
co
casos, logo, eles reusaram essas solu¸˜es.
co
A reusabilidade n˜o ´ obtida pelo simples fato de
a e
desenvolvermos softwares orientados a objetos.
Segundo Gamma et al. (1995) projetar software orientados a
objeto ´ dif´ mas projetar software reutiliz´vel orientado a
e ıcil, a
objetos ´ ainda mais complicado.
e
10 / 27
11. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns Orienta¸˜o a Objetos
ca
Aplica¸˜o Pr´tica
ca a Reusabilidade de Software
Conclus˜oa
Referˆncias
e
Objetivo
A reusabilidade pode ser considerada algo que ir´ prover
a
“informa¸˜es ou servi¸os” de programas que podem ser
co c
usados em m´ltiplas aplica¸˜es, tornando-se resposta
u co
importante aos problemas de produtividade de software.
Padr˜es de projeto devem ajudar a melhorar a reusabilidade.
o
Aumentar a reusabilidade de software ´ considerada como
e
pr´-condi¸˜o t´cnica crucial para melhorar a qualidade geral
e ca e
do software e reduzir os custos de manuten¸˜o e
ca
produ¸˜o (Pree, 1995).
ca
11 / 27
12. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns Orienta¸˜o a Objetos
ca
Aplica¸˜o Pr´tica
ca a Reusabilidade de Software
Conclus˜oa
Referˆncias
e
Motiva¸˜o
ca
A reutiliza¸˜o de software se torna uma barreira para muitos
ca
programadores, pois em muitos casos os benef´ ıcios s˜o
a
percebidos a longo prazo fazendo com que a equipe fique
desmotivada em desenvolver solu¸˜es reutiliz´veis quando, em
co a
geral, a linha de tempo para o desenvolvimento de um
software ´ curta. Existe tamb´m a barreira t´cnica, pois
e e e
muitos programadores podem n˜o entender o que reusar ou
a
como reusar.
Para se criar um projeto de software (padronizado) onde se
justifique o uso das melhores pr´ticas faz-se necess´rio um
a a
conhecimento acurado de orienta¸˜o a objetos e design
ca
patterns como tamb´m motiva¸˜o e vis˜o, a longo prazo, da
e ca a
equipe.
12 / 27
13. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Conte´do
u
1 Introdu¸˜o
ca
Introdu¸˜o aos Padr˜es de Projeto
ca o
Contexto
Advento
2 Funcamenta¸˜o Te´rica
ca o
Orienta¸˜o a Objetos
ca
Reusabilidade de Software
3 Design Patterns
Introdu¸˜o
ca
Conceito
Motiva¸˜o
ca
4 Aplica¸˜o Pr´tica
ca a
Patterns
5 Conclus˜o
a
Conclus˜es Finais
o 13 / 27
14. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Introdu¸˜o
ca
Design patterns vˆm ganhando grande aceita¸˜o como uma
e ca
ferramenta para modelagem orientada a objetos (Agostini et
al., 2007), pois existem problemas de software que, embora
estejam situados em contextos diferentes, podem ser
solucionados de maneiras semelhantes.
Fazendo com que problemas antigos, que j´ foram vivenciados
a
pelos programadores mais experientes, ser˜o catalogados e
a
padronizados para evitar futuros problemas.
Para Agostini et al. (2007), os patterns s˜o estruturas classe
a
que foram usadas por muitos anos e foram estabelecidos como
solu¸˜es eficientes para muitos problemas.
co
14 / 27
15. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Origem
Percebendo que todas as constru¸˜es de edif´
co ıcios possu´
ıam
algumas caracter´
ısticas em comum, o engenheiro civil
Cristopher Alexander resolveu catalogar estas solu¸˜es em seu
co
livro The Timeless Way of Building.
Na ´rea de engenharia de software essas pr´ticas foram
a a
adaptadas para a constru¸˜o de sistemas de informa¸˜o.
ca ca
Liderada por Erich Gamma a GoF (Gang of Four ) - Erich
Gamma, Richard Helm, Ralph Johnson e John Vlissides
publicaram o livro Design Patterns: Elements of Reusable
Object-Oriented Software. O livro continha a descri¸˜o de 23
ca
padr˜es para problemas que eram comumente encontrados
o
durante o desenvolvimento de software.
15 / 27
16. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Conceito
Um padr˜o pode ser definido como sendo um esbo¸o, em vez
a c
da implementa¸˜o espec´
ca ıfica, ou seja, um modelo a ser
seguido durante a constru¸˜o do software (Coad et al., 1995).
ca
As melhores pr´ticas de projetos antigos s˜o executadas
a a
visando que o esfor¸o para evitar retrabalho seja m´
c ınimo.
Com essas experiˆncias j´ testadas e comprovadamente ideais,
e a
tem-se um vocabul´rio comum que permitir´ uma melhor
a a
comunica¸˜o entre a equipe.
ca
Design Patterns s˜o metodologias de constru¸˜o de software
a ca
comprovadamente funcionais que garantem legibilidade,
manutenabilidade e reutiliza¸˜o de c´digo-fonte no
ca o
desenvolvimento de alguma aplica¸˜o computacional
ca
(Daniel Welfer, 2005).
16 / 27
17. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Conceito
Um padr˜o pode ser definido como sendo um esbo¸o, em vez
a c
da implementa¸˜o espec´
ca ıfica, ou seja, um modelo a ser
seguido durante a constru¸˜o do software (Coad et al., 1995).
ca
As melhores pr´ticas de projetos antigos s˜o executadas
a a
visando que o esfor¸o para evitar retrabalho seja m´
c ınimo.
Com essas experiˆncias j´ testadas e comprovadamente ideais,
e a
tem-se um vocabul´rio comum que permitir´ uma melhor
a a
comunica¸˜o entre a equipe.
ca
Design Patterns s˜o metodologias de constru¸˜o de software
a ca
comprovadamente funcionais que garantem legibilidade,
manutenabilidade e reutiliza¸˜o de c´digo-fonte no
ca o
desenvolvimento de alguma aplica¸˜o computacional
ca
(Daniel Welfer, 2005).
16 / 27
18. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Conceito
Um padr˜o pode ser definido como sendo um esbo¸o, em vez
a c
da implementa¸˜o espec´
ca ıfica, ou seja, um modelo a ser
seguido durante a constru¸˜o do software (Coad et al., 1995).
ca
As melhores pr´ticas de projetos antigos s˜o executadas
a a
visando que o esfor¸o para evitar retrabalho seja m´
c ınimo.
Com essas experiˆncias j´ testadas e comprovadamente ideais,
e a
tem-se um vocabul´rio comum que permitir´ uma melhor
a a
comunica¸˜o entre a equipe.
ca
Design Patterns s˜o metodologias de constru¸˜o de software
a ca
comprovadamente funcionais que garantem legibilidade,
manutenabilidade e reutiliza¸˜o de c´digo-fonte no
ca o
desenvolvimento de alguma aplica¸˜o computacional
ca
(Daniel Welfer, 2005).
16 / 27
19. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Conceito
Um padr˜o pode ser definido como sendo um esbo¸o, em vez
a c
da implementa¸˜o espec´
ca ıfica, ou seja, um modelo a ser
seguido durante a constru¸˜o do software (Coad et al., 1995).
ca
As melhores pr´ticas de projetos antigos s˜o executadas
a a
visando que o esfor¸o para evitar retrabalho seja m´
c ınimo.
Com essas experiˆncias j´ testadas e comprovadamente ideais,
e a
tem-se um vocabul´rio comum que permitir´ uma melhor
a a
comunica¸˜o entre a equipe.
ca
Design Patterns s˜o metodologias de constru¸˜o de software
a ca
comprovadamente funcionais que garantem legibilidade,
manutenabilidade e reutiliza¸˜o de c´digo-fonte no
ca o
desenvolvimento de alguma aplica¸˜o computacional
ca
(Daniel Welfer, 2005).
16 / 27
20. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Classifica¸˜o
ca
Os padr˜es de projeto s˜o classificados de v´rias maneiras, por´m
o a a e
o mais comum ´ classific´-los de acordo com os tipos de problemas
e a
que eles resolvem. De acordo com esse crit´rio, os padr˜es podem
e o
ser:
Cria¸˜o Resolvem os problemas da cria¸˜o de objetos.
ca ca
Estruturais Lidam com os problemas de relacionamentos entre
objetos.
Comportamentais Lidam com os problemas de atribui¸˜o de
ca
responsabilidades aos objetos.
17 / 27
21. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Motiva¸˜o
ca
Design patterns tˆm v´rios usos no processo de desenvolvimento
e a
de software orientado a objetos (Schneide, 1999):
formam um vocabul´rio comum que permite uma melhor
a
comunica¸˜o entre os desenvolvedores, uma documenta¸˜o
ca ca
mais completa e uma melhor explora¸˜o das alternativas de
ca
projeto;
constituem uma base de experiˆncias reutiliz´veis para a
e a
constru¸˜o de software;
ca
reduzem o tempo de aprendizado de uma determinada
biblioteca de classes;
quanto mais cedo s˜o usados, menor ser´ o retrabalho em
a a
etapas mais avan¸adas do projeto.
c
18 / 27
22. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Motiva¸˜o
ca
Design patterns tˆm v´rios usos no processo de desenvolvimento
e a
de software orientado a objetos (Schneide, 1999):
formam um vocabul´rio comum que permite uma melhor
a
comunica¸˜o entre os desenvolvedores, uma documenta¸˜o
ca ca
mais completa e uma melhor explora¸˜o das alternativas de
ca
projeto;
constituem uma base de experiˆncias reutiliz´veis para a
e a
constru¸˜o de software;
ca
reduzem o tempo de aprendizado de uma determinada
biblioteca de classes;
quanto mais cedo s˜o usados, menor ser´ o retrabalho em
a a
etapas mais avan¸adas do projeto.
c
18 / 27
23. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Motiva¸˜o
ca
Design patterns tˆm v´rios usos no processo de desenvolvimento
e a
de software orientado a objetos (Schneide, 1999):
formam um vocabul´rio comum que permite uma melhor
a
comunica¸˜o entre os desenvolvedores, uma documenta¸˜o
ca ca
mais completa e uma melhor explora¸˜o das alternativas de
ca
projeto;
constituem uma base de experiˆncias reutiliz´veis para a
e a
constru¸˜o de software;
ca
reduzem o tempo de aprendizado de uma determinada
biblioteca de classes;
quanto mais cedo s˜o usados, menor ser´ o retrabalho em
a a
etapas mais avan¸adas do projeto.
c
18 / 27
24. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Introdu¸˜o
ca
Design Patterns
Conceito
Aplica¸˜o Pr´tica
ca a
Motiva¸˜o
ca
Conclus˜oa
Referˆncias
e
Motiva¸˜o
ca
Design patterns tˆm v´rios usos no processo de desenvolvimento
e a
de software orientado a objetos (Schneide, 1999):
formam um vocabul´rio comum que permite uma melhor
a
comunica¸˜o entre os desenvolvedores, uma documenta¸˜o
ca ca
mais completa e uma melhor explora¸˜o das alternativas de
ca
projeto;
constituem uma base de experiˆncias reutiliz´veis para a
e a
constru¸˜o de software;
ca
reduzem o tempo de aprendizado de uma determinada
biblioteca de classes;
quanto mais cedo s˜o usados, menor ser´ o retrabalho em
a a
etapas mais avan¸adas do projeto.
c
18 / 27
25. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Conte´do
u
1 Introdu¸˜o
ca
Introdu¸˜o aos Padr˜es de Projeto
ca o
Contexto
Advento
2 Funcamenta¸˜o Te´rica
ca o
Orienta¸˜o a Objetos
ca
Reusabilidade de Software
3 Design Patterns
Introdu¸˜o
ca
Conceito
Motiva¸˜o
ca
4 Aplica¸˜o Pr´tica
ca a
Patterns
5 Conclus˜o
a
Conclus˜es Finais
o 19 / 27
26. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Singleton
O pattern Singleton est´ entre um dos mais simples patterns a ser
a
implementado, pois seu objetivo ´ apenas garantir que seja
e
mantida somente instˆncia de um determinado objeto. Ou seja, a
a
pr´pria classe garante que nenhuma outra instˆncia seja criada,
o a
bem como oferece uma maneira de acessar sua pr´pria instˆncia.
o a
20 / 27
27. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Factory
Existem certas situa¸˜es em aplica¸˜es que, seja por uma
co co
interven¸˜o humana ou por uma implementa¸˜o mais complexa, o
ca ca
programador n˜o saber´ como o programa ir´ se comportar diante
a a a
de uma determinada situa¸˜o. Com isso, o programador pode n˜o
ca a
saber que classe dever´ ser instanciada em determinado momento
a
de uma aplica¸˜o. Para facilitar esse tipo de situa¸˜o foi criado o
ca ca
pattern Factory.
21 / 27
28. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Fa¸ade
c
O objetivo deste pattern ´ fornecer uma interface unificada para
e
um conjunto de interfaces em um subsistema (Gamma et al.,
1995). Ou seja, o pattern Fa¸ade ´ o isolamento entre camadas de
c e
um sistema, permitindo uma interface mais simples de
comunica¸˜o entre essas camadas, como tamb´m um acoplamento
ca e
baixo.
22 / 27
29. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Conclus˜es Finais
o
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Conte´do
u
1 Introdu¸˜o
ca
Introdu¸˜o aos Padr˜es de Projeto
ca o
Contexto
Advento
2 Funcamenta¸˜o Te´rica
ca o
Orienta¸˜o a Objetos
ca
Reusabilidade de Software
3 Design Patterns
Introdu¸˜o
ca
Conceito
Motiva¸˜o
ca
4 Aplica¸˜o Pr´tica
ca a
Patterns
5 Conclus˜o
a
Conclus˜es Finais
o 23 / 27
30. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Conclus˜es Finais
o
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Singleton
Design Patterns s˜o metodologias de constru¸˜o de software
a ca
comprovadamente funcionais que garantem legibilidade,
manutenabilidade e reutiliza¸˜o de c´digo-fonte no
ca o
desenvolvimento de alguma aplica¸˜o computacional
ca
(Daniel Welfer, 2005).
24 / 27
31. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Referˆncias I
e
Agostini, M. N., Decker, I. C. & e Silva, A. S. (2007), ‘A new
approach for the design of electric power system software using
object oriented modeling.’, International Journal of Electrical
Power & Energy Systems 29, 505–513.
Coad, P., North, D. & Mayfield, M. (1995), Object models:
strategies, patterns, applications, Yourdon Press, Upper Saddle
River, NJ, USA.
Daniel Welfer, M. C. d. (2005), ‘Coopera¸˜o entre padr˜es de
ca o
projeto na resolu¸˜o de problemas de processamento de imagens
ca
baseados em filtros de convolu¸˜o’.
ca
25 / 27
32. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Referˆncias II
e
Gamma, E., Helm, R., Johnson, R. & Vlissides, J. (1995), Design
Patterns Elements of Reusable Object-Oriented Software,
Addison-Wesley.
Gerber, L. D. (1999), Uma linguagem de padr˜es para o
o
desenvolvimento de sistemas de apoio ` decis˜o baseado em
a a
frameworks, Master’s thesis, Pontif´ Universidade Cat´lica do
ıcia o
Rio Grande do Sul.
Lange, D. B. & Nakamura, Y. (1995), ‘Interactive visualization of
design patterns can help in framework understanding’, Sigplan
Notices pp. 342–357.
Meyer, B. (1997), Object-Oriented Software Construction, Prentice
Hall.
26 / 27
33. Introdu¸˜o
ca
Funcamenta¸˜o Te´rica
ca o
Design Patterns
Aplica¸˜o Pr´tica
ca a
Conclus˜oa
Referˆncias
e
Referˆncias III
e
Oglio, P. D. (2007), PHP - Programando com Orienta¸˜o a
ca
Objetos, Novatec.
Pree, W. (1995), Technology of object-oriented languages and
systems, in ‘TOOLS’.
Schneide, R. L. (1999), ‘Design patterns’. URL
http://dcc.ufrj.br/~schneide/PSI_981/gp_6/design_patterns
´
Ultimo acesso em 02/06/2009.
27 / 27