/design-patterns

Estudo de padrões de projeto (Design Patterns - GOF)

Primary LanguageTypeScript

Padrões de projetos

  • São soluções elegantes para problemas conhecidos recorrentes no desenvolvimento de software que foram utilizados e testados no passado e continuam relevantes nos dias atuais.
  • Foram catalogados e popularizados pelo livro "Padrões de projeto - Soluções reutilizaveis de software orientado a objetos" (os padrões da "GoF", de 1994/95)
  • Categorias dos padrões de projetos:
    • Criação (creational): que visam abstrair o processo de como objetos são criados na aplicação;
    • Estruturais (structural): que lidam com a composição de classes e objetos;
    • Comportamentais (behavioural): que caracterizam como as classes e objetos interagem e distribuem responsabilidades na aplicação.
  • São apenas sugestões de software;

Benefícios e problemas

O que é bom:

  • Você não precisa reinventar a roda;
  • Padrões universais facilitam o entendimento do seu projeto;
  • Evita refatoração desnecessária;
  • Ajuda na reutilização de código (conceito DRY);
  • Abstrai e nomeia partes particulares do projeto;
  • Ajuda na aplicação dos princípiuos do design orientado a objetos (SOLID);
  • Facilitam a criação de testes unitários;

O que é ruim:

  • Alguns padrões podem ser complexos até que você os compreenda;
  • Muito código para atingir um objetivo simples;
  • Podem trazer otimizações prematuras para o seu código (YAGNI);
  • Se usados incorretamento, podem atrapalhar ao invés de ajudar;