Design Patterns

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.

Padrões de criação

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

Padrões de estruturais

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

Padrões comportamentais

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)