Em outras linguagens é muito comum programadores falarem sobre Design Patterns, ou na tradução literal, Padrões de Projeto. No Delphi não é diferente, também podemos e devemos utilizarmos da melhor forma possível.
Embora esse assunto muitas vezes gera polêmicas entre os desenvolvedores, é um assunto de suma importância para a manutenibilidade do seu software.
Nesse artigo vou explicar de forma simples e direta o que seria um padrão de projeto e deixar algumas dicas de leitura e cursos voltados para o nosso querido e amado Delphi.
Sem mais de longas vamos para a analogia. Eu sempre costumo comparar a programação com outras áreas/profissões e para fazermos uma analogia aos padrões de projeto nada melhor do que nos compararmos aos arquitetos e engenheiros civis. Esses profissionais são responsáveis por arquitetar/projetar casas, centros comerciais, prédios, etc. Eles seguem boas práticas e padrões de construções que devem ser seguidos desde o início do projeto até a conclusão da obra. Na programação não é diferente.
Os Padrões de Projetos vieram para organizar como os softwares vinham sendo construídos de tal forma que os problemas mais rotineiros pudessem ter um padrão para a sua resolução. Esse termo foi popularizado em meados dos anos 90 quando o GoF (Gang of Four) publicou seu livro sobre este tema.
Embora hoje em dia existam mais padrões, naquela época eles publicaram os 23 mais utilizados e os agruparam da seguinte forma:
Padrões Criacionais
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
Padrões Estruturais
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flywight
- Proxy
Padrões Comportamentais
- Chain of Responsability
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Abaixo deixo uma lista de recomendações de leitura, hands on e vídeos. Os que eu mais gosto é o site do MVP André Celestino que explica os 23 padrões de forma prática e com cenários reais utilizando o Delphi. E também o site Refactoring Guru que explica mais na teoria o que é e qual a finalidade de cada padrão.