Um recurso muito utilizado na engenharia de softwares são os padrões de projeto, e neste artigo vamos conhecer um pouco mais sobre este conceito.

Como surgiram os padrões de projeto

Os padrões de projeto foram criados pelo arquiteto Christopher Alexander. Algo interessante de se mencionar, é que Christopher Alexander não era arquiteto de software, era arquiteto de casas e prédios mesmo. Ele conseguiu identificar diversos problemas no seu ramo de atuação que se repetiam com frequência e para os quais já existiam soluções conhecidas. Então, ele criou padrões de construção para evitar esses problemas.

Segundo ele, cada padrão de projeto descreve um problema que ocorre frequentemente em seu ambiente e o cerne da solução para aquele problema. Assim, você pode usar a mesma solução milhões de vezes, sem nunca fazer a mesma coisa repetida.

Isso quer dizer que os padrões de projeto são uma espécie de modelo da solução para o problema. Esse “modelo” precisa então de algumas adapções de acordo com a necessidade do projeto onde sua aplicação é feita.

Padrões de projeto em programação

Os padrões de projeto começaram a se popularizar na programação a partir de 1995 quando aconteceu o lançamento do livro Padrões de Projetos – Soluções Reutilizáveis de Software Orientados a Objetos. Neste livro, foram detalhados 23 padrões de projeto com orientação a objetos e embora o assunto siga em cosntante evolução, o livro ainda é a maior referencia sobre o tema.

É importante falar aqui que os padrões de projeto estão fortemente ligados à programação orientada a objetos. Porém, é possível fazer adaptações em alguns tipos de padrões para utilizá-los em outros paradigmas de programação.

No livro Padrões de Projetos – Soluções Reutilizáveis de Software Orientados a Objetos, os padrões selecionados pelos autores foram dividos em três categorias: creacionais, estruturais e comportamentais.

Padrões creacionais

Os padrões creacionais fornecem diferentes formar de criar objetos, com o objetivo de reduzir problemas relacionados à criação de objetos em uma aplicação.

Um exemplo de padrão de projeto creacional é o padrão Singleton. Neste padão, temos uma classe com apenas uma instância em toda aplicação. Essa classe serve então como um “aglomerado de informações” que fica disponível para toda a aplicação permitindo o acesso aos dados por qualquer componente.

Padrões estruturais

Os padrões estruturais explicam como estruturar e organizar objetos e classes. Estes padrões são úteis para garantir que o software em desenvolvimento seja fácil de manter e também podem permitir que o seu código seja de fácil ententimento, desde que as pessoas entendam o padrão sendo utilizado.

Um exemplo de padrão de projeto estrutural é o padrão Adapter. Neste padrão, uma classe conecta duas outras classes de modo que estas duas classes, que anteriormente não podiam se comunicar por serem incompatíveis agora possam fazê-lo. Desta forma, as duas classes podem trabalhar juntas sem a necessidade de modificar o código existente.

Padrões comportamentais

Padrões comportamentais estão ligados ao comportamento que uma determinada classe terá, e como esta classe se comportará em conjunto com outras classes. Estes projetos também sao utilizados para dividir as responsabilidades da aplicação entre os diferentes classes.

Um exemplo de padrão comportamental é o padrão Chain of Responsibility, onde temos diversos handlers que realizam tarefas específicas e encadeamos estes handlers para obter o resultado esperado. A ideia é que ao invés de resolver um problema com uma função grande, o resolvemos com várias funções pequenas.

Considerações finais

Neste artigo conhecemos origem dos padrões e projeto e sua a classificação. Este assunto é muito importante para todo mundo que deseja entrar no mercado de programação e com certeza merece um certo tempo para ser conhecido mais a fundo.

Veja também