Padrões de design de software, como o próprio nome sugere, são padrões comuns para resolver problemas variados no desenvolvimento de software. Um padrão de design não é um algoritmo ou um código que pode ser simplesmente copiado e colado de um projeto para o projeto, mas um conceito aplicado no código para resolver algum tipo de problema.
Os padrões de design de software se dividem em três grupos: os criacionais, estruturais e comportamentais.
Padrões criacionais abstraem o processo de instanciação, tornando o sistema independente de como os objetos são criados, compostos e representados. Assim, aumentando a flexibilidade do código.
Padrões criacionais:
Padrões estruturais gerenciam a forma como classes e objetos são compostos para formar estruturas maiores, mantendo-os flexíveis e eficientes.
Padrões estruturais:
Padrões comportamentais lidam com algoritmos e a atribuição de responsabilidades entre objetos, descrevendo os padrões de objetos, classes e da comunicação entre eles.
Padrões comportamentais:
- Chain of Responsability
- Command
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
- Geekific
- Refactoring Guru
- Padrões de Projeto: Soluções reutilizáveis de software orientado a objetos