Definição
Design Patterns são Padrões de Projetos.
São soluções generalistas para problemas recorrentes durante o desenvolvimento de software.
Não se trata de um framework ou código pronto, mas de uma definição de alto nível de como um problema comum pode ser solucionado.
- Em 1978 surgiu o livro "A Pattern Language" apresentando 253 tipos de problemas/desafios de projeto.
- Em 1987, Kent Beck e Ward Cunningham apresentaram 5 padrões de projetos em uma palestra chamada Using Pattern Languages for Object-Orientated Program
- Em 1994, Gang of four (GoF) apresentou um livro chamado Design Patterns: Elements of Reusable Object-Oriented Software que contém mais de 50 padrões de projetos.
Formato
- Nome
- Exemplo
- Contexto
- Problema
- Solução
Tipos de Padrões (Três categorias)
Padrões de Criação
São aqueles que abstraem e/ou adiam o processo de criação de objetos.
Ajudam a tornar um sistema independente de como seus objetos são criados, compostos e representados.
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
Padrões Estruturais
Se preocupam com a forma como classes e objetos são compostos para formar estruturas maiores.
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Business Delegate
- Flyweight
- Proxy
Padrões Comportamentais
Se concentram nos algoritmos e atribuições de responsabilidades entre os objetos. Eles não descrevem apenas padrões de objetos ou de classes, mas também padrões de comunicação entre os objetos.
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Observer
- State
- Strategy
- Template Method
- Visitor