Padrões de projeto (Design Patterns)
Padrões de Projeto (Design Patterns) - Resumo para Concursos
1. Conceito
Padrões de projeto são soluções reutilizáveis para problemas comuns no desenvolvimento de software. Eles oferecem modelos testados e otimizados para estruturação de código, promovendo boas práticas como baixo acoplamento e alta coesão.
2. Classificação (GoF - Gang of Four)
Os 23 padrões clássicos são divididos em 3 categorias:
- Criacionais: Abstraem a instanciação de objetos (ex: Factory, Singleton, Builder)
- Estruturais: Lidam com composição de classes/objetos (ex: Adapter, Decorator, Facade)
- Comportamentais: Gerenciam algoritmos e responsabilidades (ex: Observer, Strategy, Command)
3. Padrões mais Cobrados em Concursos
- Singleton: Garante uma única instância da classe
- Factory Method: Delega criação de objetos para subclasses
- Observer: Notifica mudanças a objetos dependentes
- Strategy: Permite intercâmbio de algoritmos em runtime
- Decorator: Adiciona responsabilidades dinamicamente
4. Vantagens
- Reutilização de soluções comprovadas
- Documentação implícita do sistema
- Facilita manutenção e evolução
- Reduz dependência entre componentes
5. Relação com Arquitetura de Software
Padrões arquiteturais (como MVC ou Microservices) operam em nível mais alto, enquanto design patterns atuam em nível de implementação, sendo complementares na construção de sistemas robustos.