À medida que você continua tentando descobrir novos recursos em seus aplicativos, você acha que as soluções propostas são tão semelhantes a algumas coisas que você implementou antes? Se você é um programador (mesmo que esteja começando há pouco tempo), provavelmente respondeu “sim”. Parece que você está usando algum código antigo para resolver problemas recém-descobertos durante o desenvolvimento de software. Você deve ter percebido que sua solução é um princípio fundamental, um método que pode ser amplamente repetido não só por você, mas por todos os desenvolvedores profissionais.
Na verdade, muitos problemas de programação são encontrados repetidamente e surgiram muitos métodos básicos (ou padrões de projeto) para resolver esses problemas. Um padrão de design é um modelo que ensina como organizar seu código usando designs autênticos e confiáveis.
História do padrão de design
O termo "padrão de design" foi originalmente cunhado no campo da arquitetura. Em seu livro de 1977, "A Pattern Language: Towns/Building/Construction", Christopher Alexander descreve alguns problemas comuns de projeto arquitetônico e explica como usar uma coleção de padrões existentes e bem conhecidos para iniciar projetos novos e eficazes. A perspectiva de Alexander se traduz bem no desenvolvimento de software e há um consenso de longo prazo sobre o uso de componentes existentes para construir novas soluções.
Todos os padrões de projeto têm algumas características comuns: um nome, uma declaração do problema e uma solução.
1. A identificação de um padrão de design é importante porque permite que outros programadores entendam imediatamente o propósito do seu código sem ter que estudar muito profundamente (pelo menos através desta identificação, os programadores estarão familiarizados com este padrão). ?
2. A descrição do problema é utilizada para ilustrar o campo de aplicação deste modelo. ?
3. A solução descreve a execução deste modelo. Uma boa discussão sobre um padrão de projeto deve abranger as vantagens e desvantagens do uso do modelo. ?
Expandir