Análise e Projeto Orientados  
por Objetos  
Aula 04 – Padrões de Projeto GoF  
Edirlei Soares de Lima  
<edirlei@iprj.uerj.br>  
Padrões GoF  
•
•
Em 1995, Erich Gamma, Richard Helm,  
Ralph Johnson e John Vlissides descreveram  
2
desenvolvimento de sistemas de software  
orientados a objetos.  
3 padrões que podem ser aplicados ao  
–
Gamma e seus colaboradores são conhecidos  
como a Gangue dos Quatro (Gand of Four, GoF).  
Não são invenções. São documentação de  
soluções obtidas através da experiência.  
Foram coletados de experiências de sucesso  
na indústria de software, principalmente de  
projetos em C++.  
Padrões GoF  
•
•
Os padrões GoF estão relacionados a questões de:  
–
–
–
–
comportamento de objetos;  
ciclo de vida de objetos;  
interface dos objetos;  
relacionamentos entre os objetos.  
Permitem desenvolver software de melhor qualidade, uma  
vez que utilizam eficientemente polimorfismo, herança,  
modularidade, composição, abstração para construir código  
reutilizável, eficiente, de alta coesão e baixo acoplamento.  
Categorias de Padrões GoF  
•
•
Os padrões GoF são divididos em três categorias:  
–
Criacionais: têm a ver com inicialização e configuração de objetos;  
–
Estruturais: têm a ver com o desacoplamento entre a interface e a  
implementação de objetos;  
–
Comportamentais: têm a ver com interações (colaborações) entre  
sociedades de objetos.  
Um padrão GoF também é classificado segundo o seu escopo:  
–
Classe: os relacionamentos que definem este padrão são definidos  
através de herança e em tempo de compilação.  
–
Objeto: é encontrado no relacionamento entre os objetos definidos  
em tempo de execução.  
Categorias de Padrões GoF  
Padrões GoF  
•
Criação:  
•
Estruturais:  
• Comportamentais:  
–
–
–
–
–
Abstract Factory  
Builder  
Factory Method  
Prototype  
Singleton  
–
–
–
–
–
–
–
Adapter  
Bridge  
– Chain of Responsibility  
– Command  
– Interpreter  
– Iterator  
– Mediator  
– Memento  
Composite  
Decorator  
Façade  
Flyweight  
Proxy  
– Observer  
–
–
–
–
State  
Strategy  
Template Method  
Visitor