Padrões de Projetos
Orientado a Objetos
Tiago Celuppi
Facet
Padrões de Projeto de Software OO
• Também conhecidos como
– Padrões de Desenho de Software OO
– ou simplesmente como Padrões.
A Inspiração
• A idéia de padrões foi apresentada por Christopher
Alexander em 1977 no contexto de Arquitetura (de prédios e cidades):
• Cada padrão descreve um problema que ocorre repetidamente de novo e de novo em nosso ambiente, e então descreve a parte central da solução para aquele problema de uma forma que você pode usar esta solução um milhão de vezes, sem nunca implementa-la duas vezes da mesma forma.
Catálogo de soluções
• Um padrão encerra o conhecimento de uma pessoa muito experiente em um determinado assunto de uma forma que este conhecimento pode ser transmitido para outras pessoas menos experientes.
• Outras ciências (p.ex. química) e engenharias possuem catálogos de soluções.
• Desde 1995, o desenvolvimento de software passou a ter o seu primeiro catálogo de soluções para projeto de software: o livro GoF.
Gang of Four (GoF)
• E. Gamma and R.
Helm and R. Johnson and J. Vlissides.
Design Patterns Elements of Reusable
Object-Oriented
Software.
AddisonWesley,
1995.
Gang of Four (GoF)
• Passamos a ter um vocabulário comum para conversar sobre projetos de software.
• Soluções que não tinham nome passam a ter nome.
• Ao invés de discutirmos um sistema em termos de pilhas, filas, árvores, passamos a falar de coisas de muito mais alto nível como
Fábricas, Fachadas, Observador, Estratégia, etc.
• A maioria dos autores eram entusiastas de Smalltalk, principalmente o Ralph Johnson.
• Mas acabaram baseando o livro em C++ para que o impacto junto à comunidade de C fosse maior. E o impacto foi enorme, o livro vendeu centenas de milhares de cópias.
O Formato de um padrão
• Todo padrão inclui o mínimo:
– Nome
– Problema
– Solução
– Conseqüências / Forças
– Exemplo
O Formato dos padrões no GoF
•