Um repositório de estudos práticos aplicando Design Patterns (GoF) e princípios de Clean Code em Delphi, com foco em resolver problemas reais de sistemas legados.
O objetivo deste repositório é demonstrar como sair do "código espaguete" (comum em sistemas legados) e migrar para uma arquitetura orientada a objetos, testável e desacoplada.
Cada pasta dentro de src representa um padrão de projeto aplicado a um cenário do mundo real.
| Categoria | Padrão | Descrição | Status |
|---|---|---|---|
| Behavioral | Strategy | Cálculo de Fretes (Sedex/PAC) sem IFs | ✅ Concluído |
| Behavioral | Observer | Desacoplamento de notificações (Loja/Clientes) via Publish-Subscribe | ✅ Concluído |
| Creational | Factory Method | Resolve o "Dilema da Criação" removendo a instanciação do Form | ✅ Concluído |
| Structural | Facade | Simplificação de Checkout (Estoque, Financeiro e NF) via interface única | ✅ Concluído |
O projeto foi desenvolvido utilizando Delphi 12 (Athens), mas o código-fonte (.pas) é compatível com versões anteriores.
- Linguagem: Object Pascal (Delphi).
- Compatibilidade: Testado no Delphi 12, mas compatível com Delphi Berlin, Tokyo, Rio, Sydney, Alexandria e anteriores (que suportem Generics/Interfaces).
- Testes: DUnitX (Recomendado para versões XE ou superiores).
Dica para versões antigas: Se você usa uma versão muito antiga (ex: Delphi 7), basta criar um novo projeto e adicionar as units manualmente. A lógica dos padrões funciona perfeitamente, bastando ajustar a sintaxe de Generics se necessário.
- Clone o repositório: