O que são Design Patterns ?
Indo direto ao ponto, os Design Patterns são soluções pre-projetadas que você pode aplicar em seu código para resolver problemas comuns e recorrentes enfrentados durante o desenvolvimento do software. Apesar de ser aplicado no código, ele não pode simplesmente ser copiado e colado nele, pois se trata de um conceito, que deve ser seguido e devidamente adequado ao que o seu projeto exige.
Mas porque e quando devemos usar ?
Por se tratar de uma solução de problemas comuns, utilizar um Design Pattern traz uma confiabilidade ao seu código, afinal, é uma solução que foi aplicada e testada em diversos outros projetos com problemas iguais ou similares ao seu, sem contar do ganho de produtividade que fornece, facilitando a manutenção e organização e entendimento do mesmo
Mas afinal quando utilizar um Design Pattern ? Bom, apesar da vontade de colocar Design Patterns em tudo após entender os benefícios que ele pode oferecer, é preciso tomar cuidado na hora de se aplicar pois podemos acabar tornando algo simples em difícil, assim algo que tinha o objetivo de ajudar acaba mais atrapalhando.
O momento ideal de se aplicar um Design Pattern é durante uma refatoração de código, tendo noção do conceito que está sendo aplicado por trás do projeto, facilitando na identificação do problema e assim possibilitando na aplicação melhor design patter para aquele problema, afinal, eles focam na reutilização de soluções, pois nem todos os problemas são iguais
A diferença entre Design Pattern e Architectural Pattern
Apesar de terem nomes extremamente parecidos, os dois tem funções em locais distintos apesar de buscarem algo em comum, otimizar a manutenção e qualidade do código.
O Design Pattern atua na ideia abstrata da solução do software, enquanto os Architectural Patterns são aplicados diretamente no desenvolvimento do código, sendo uma estrutura a se seguir. Um famoso exemplo de Architectural Pattern são os famosos M.V.C ( Model View Controller )
Os tipos de Design Patterns
Após entender oque é e porque devemos implementar os design patterns, é importante saber quais são eles.
Os tipos são divididos em três: Criacional, Estrutural e Comportamental, cada um com um foco especifico. Esses três tipos foram difundidos pelos GoF(1), após publicarem o livro “Design Patterns: Elements of Reusable Object-Oriented Software” que catalogava os 23 design patterns mais comuns
Apesar de serem os 23 mais comuns não são os únicos, existem muitos outros Design Patterns para inúmeros problemas que podem atender melhor a sua situação.
1º Criacional: Os tipos criacionais fornecem inúmeras alternativas para a criação de objetos, eles ajudam o sistema a se tornar independente entre si, abstraindo a criação de um objeto.
2º Estrutural: Os padrões estruturais permitem que objetos e classes sejam criados em estruturas em grande escala para poder realizer o relacionamento entre as entidades sem perder a sua produtividade, ou seja, mantendo a eficiência e flexibilidade.
3º Comportamental: Os padrões comportamentais auxiliam na utilização de algoritmo e distribuição de responsabilidade entre as entidades.
Caso você queira alguns exemplos de Design Pattern e uma explicação mais detalhada de cada um pode acessar os seguintes links:
Rodapé:
1º GoF: O Gang of Four(GoF) foi como ficaram conhecidos 4 autores do livro “Design Patterns: Elements of Reusable Object-Oriented Software” publicado em 1994 que ficou mundialmente famoso sendo uma referencia de base sólida sobre padrões do campo de design para objetos, sendo eles: Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides.