Design Patterns - Padrões de Projetos
Com este artigo dou início a série de artigos que pretendo fazer sobre Design Patterns em C#, onde tentarei abordar os principais padrões de projetos utilizando o C# como linguagem de programação.
Esta série de artigos tem como base o projeto Refactoring.Guru , o qual deixo aqui o meu muito obrigado pela contribuição que vem realizando à comunidade de desenvolvimento de software. Inclusive no final deste artigo deixo o link para o projeto e também o link para que possam contribuir com o projeto deles.
Os Padrões de Projetos (design patterns) são formas de resolver problemas que são comuns em projetos de software, são tomadas soluções comuns que já foram analisadas e pensadas para resolver esses tipos de problemas que são mais típicos. E cada tipo de padrão é como se fosse um molde de uma ferramenta que você pode customizar da forma que melhor se encaixe para utilizar ao cenário que você está atuando.
Você não precisa encarar o padrão que você irá adotar com um modelo totalmente engessado, que você simplesmente irá aplicar ao projeto que você está atuando, porque ele apesar de ser um molde que você está usando para criar a ferramenta que você irá criar ela muitas vezes pode não se encaixar perfeitamente ao seu quadro real. Portanto, é necessário analisar muito bem e fazer adaptações para que funcione da forma que você precise.
Esses padrões de projetos muitas vezes se confundem como algoritmos prontos que são só aplicados dentro do software que você está desenvolvendo, porém eles são muito mais do que isso. Enquanto um algoritmo é um conjunto de instruções e códigos que vão executar de uma forma clara ali para se atingir um objetivo, um padrão é como se fosse a descrição de como esse algoritmo será implementado. Podemos fazer a relação entre a arquitetura e a planta de uma edificação, enquanto um arquiteto faz o desenho de como uma edificação deve se parecer, o engenheiro que irá fazer a parte técnica de como essa estrutura se manterá de pé por exemplo.
Mas, afinal, o que consiste um Padrão de Projeto?
Os padrões são descritos formalmente e de uma forma bem clara para que as pessoas consigam aplica-los em diferente formas e contextos. Geralmente esses padrões são descritos da seguinte forma:
Existem apenas um tipo de Padrão de Projeto ou como são classificados?
Não, não existe apenas um tipo de projeto, como dito anteriormente, para cada tipo de problema pode existir formas de solucionar este problema. Por isso, esses Padrões são classificados de forma que se possa identificar os problemas que são tratados, como são solucionados e o grau de complexidade dessas padrões.
Recomendados pelo LinkedIn
E os tipos de de Padrão de Projeto que temos atualmente são:
E quais sãos os benefícios de utilizar esses padrões nos seus projetos?
Bom, você pode argumentar que nunca utilizou nenhum tipo de padrão no seu projeto e mesmo assim ele funcionou bem e entregou o que precisava, e realmente você pode muito bem conseguir realizar seus projetos e entregar soluções para os problemas que você encontra sem precisar necessáriamente de um padrão que diga para você o que fazer. Contudo, muitas dessas vezes você acabou utilizado de algum padrão de projeto sem saber, então seria muito melhor você estudar sobre os padrões existentes e economizar tempo tendo que encontrar soluções que já existam e estão disponíveis para serem utilizadas.
Padrões de Projetos já foram testadas e validadas várias vezes por outros desenvolvedores que tiveram os mesmos problemas que você possa estar passando, portanto é muito válido confiar e estudar o que já foi feito para se resolver estes problemas e conseguir adaptar para suas situações.
Utilizar e estudar esses padrões, temos formas de identificar as situações e classifica-las com um nome em comum, facilitando na hora de buscar sobre estas situações e se comunicar em equipes, já que na hora de conversar com um desenvolvedor da mesma equipe ou comunidade, você pode referenciar sobre o nome do padrão que está tentando encontrar.
Para finalizar, informo que pretendo dar continuidade a este conteúdo apresentando mais profundamente os tipos de Padrões de Projetos (Criacionais, Estruturais e Comportamentais) e também cada um de seus mecanismos. Meu foco será com aplicação dentro do C# destes padrões que é a linguagem que estou mais acostumado e que trabalho atualmente, porém posso falar também sobre a aplicação em outras linguagens caso surja a necessidade e demanda.
Fonte: https://refactoring.guru/
Analista Comercial Estratégico | Data Analytics
2 aMuito bom!