Podemos definir Padrões de Projeto como modelos de soluções para algum problema específico encontrado frequentemente dentro de um projeto de software. Eles servem como templates a serem aplicados para desenvolver uma solução para os problemas.
Responsáveis por abstrair a criação de objetos, eles tranferem e centralizam responsabilidades de como e onde instanciá-los, tornando o sistema mais flexível. Os padrões de criação definidos pelo GOF são:
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
Os padrões estruturais definem como classes e objetos são compostos entre si, permitindo alterações nessa composição em tempo de execução. Estão mais relacionados à estrutura como as classes e objetos estão ligados. Os padrões de criação definidos pelo GOF são:
- Adpater
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
Elese definem a comunicação entre classes e objetos, como também de seus comportamentos. Estão ligados diretamente à atribuição de responsabilidades desses objetos e como os algortimos se comportam. Os padrões de criação definidos pelo GOF são:
- Chain of responsability
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Referência:
- Livro: Design Patterns com PHP 7 (Gabriel Anhaia)