Design Pattern: O que é e porque utilizar
Published: 2023-01-23 17:21:50


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/giorqow5drhzh69foufs.png)

Ao construir software, especialmente para aqueles com experiência, é evidente que determinados desafios são recorrentes no processo de desenvolvimento. Ao nos depararmos com tais obstáculos, é comum questionar se já existe uma solução consolidada.
 
Na maioria dos casos, a resposta é afirmativa, e é aí que os padrões de design entram em cena, oferecendo uma orientação valiosa para abordar esses problemas de forma organizada e eficaz.

## O Que São Padrões de Design?
Em síntese, um padrão de design é um guia que nos dá a direção de como resolver um problema específico no desenvolvimento de software.

## Origens dos Padrões
A história dos padrões de design começou em 1978, quando três arquitetos publicaram "[Uma Linguagem de Padrões](https://www.amazon.com.br/Uma-Linguagem-Padr%C3%B5es-Christopher-Alexander/dp/8565837173/ref=asc_df_8565837173/?tag=googleshopp00-20&linkCode=df0&hvadid=379708289469&hvpos=&hvnetw=g&hvrand=8160552595325827652&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1001763&hvtargid=pla-810020961089&psc=1)". Este livro visava compreender a origem de problemas comuns e propor soluções. 

Em 1987, durante a [OOPSLA](https://www.sigplan.org/Conferences/OOPSLA/), dois engenheiros de software apresentaram cinco padrões adicionais. Contudo, foi em 1994 que os padrões ganharam destaque, com o livro "[Padrões de Projeto — Soluções Reutilizáveis de Software Orientado a Objetos](https://www.amazon.com.br/Padr%C3%B5es-Projetos-Solu%C3%A7%C3%B5es-Reutiliz%C3%A1veis-Orientados-ebook/dp/B016N8RJUQ/ref=tmm_kin_swatch_0?_encoding=UTF8&qid=&sr=)", catalogando 23 padrões.

Desde então, o tema tem sido amplamente discutido e estudado por profissionais da área de desenvolvimento de software em todo o mundo.

## Vantagens da Utilização de Padrões
Ao empregar um padrão, é possível implementar soluções de forma mais produtiva, resultando em código mais organizado, padronizado e de fácil leitura e manutenibilidade.
Organização dos Padrões

A "Gangue dos Quatro" (Gang of Four) desempenhou um papel fundamental ao catalogar os padrões mais conhecidos em seu livro. Esses padrões são categorizados em três grupos: criacionais, estruturais e comportamentais.

#### Criacional
Abstract Factory
Builder
Factory Method
Prototype
Singleton

#### Estrutural
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy

#### Comportamental
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor

## Conclusão
Compreender os padrões de design é essencial para o desenvolvimento eficaz de software. A aplicação desses padrões não apenas otimiza o processo, mas também estabelece uma linguagem comum, promovendo clareza na comunicação entre os desenvolvedores envolvidos no projeto.

Em resumo, a adoção de padrões é uma prática valiosa para garantir eficiência, qualidade e sustentabilidade ao longo do ciclo de vida do projeto. Esses padrões oferecem diretrizes que se traduzem em código mais robusto, fácil de manter e compreender.

#### Fontes:
 
[Design Patterns](https://www.opus-software.com.br/design-patterns) 
[Gangs of Four (GoF) Design Patterns](https://www.digitalocean.com/community/tutorials/gangs-of-four-gof-design-patterns)