Se você é um programador que gosta de fazer as coisas do jeito certo e tem gosto por fazer os códigos mais belos de toda a equpe, já deve ter por alguma vez caído na seguinte questão d’alma:- O que estou escrevendo é a melhor solução?
Ou ainda, no meio de um problema que está difícil encontrar a solução que te agrade:
- Caramba, mas será que ninguém já passou por esse problema ?
Situação pior ainda, quando por algum motivo, você tem que fazer manutenção naquele código que escreveu anos atrás quando ainda era um menino juvenil na arte de escrever um bom codigo:
- P#$%!@! Porque escrevi essa m#%$@ desse jeito! Agora vai dar maior trabalhão alterar isso.
Se respondeu “SIM” a alguma dessas questões, seus problemas acabaram! Design Patters é o produto que vai solucionar todos os seus problemas!
Brincadeiras a parte, pense:
- A não ser que você esteja prestes a solucionar o teorema de Gödel, alguém já passou pelo seu problema e ver a solução do outro no mínimo te trará uma margem de comparação para dizer se a sua solução é a ideal;
- Todo o código (eu disse, TODO) é passível de no futuro ser alterado. Mesmo aquela “cosinha rápida”, “que vai sair do ar mês que vem”, pode apostar: um dia você ou outra pessoa terá que mexer.
É aí que aparece a necessidade para, problemas parecidos se tenham soluções parecidas.
As vantagens a primeira vista são facilidade de manutenção (já se conhecendo a lógica e estas serem flexíveis, as alterações se tornam mais rápidas) e a diminuição do tempo de aprendizagem de um sistema para manutenção (se o código é todo padronizado, basta que o mantenedor da aplicação conheça os padrões aplicados para começar a produzir) . Mas, acredite, as vantagens são maiores do que essas duas que citei.
Mas nem tudo são flores.
Aplicar algum Design Pattern a uma solução é algo que sempre tem de ser elogiado, mas tome cuidado! Exagerar no seu uso pode ser um tiro no pé: a manutenção ficar complicada demais, o nível de abstração para o entendimento tornar o código ilegível, enfim…bom senso sempre!
Design Paterns é um assunto que quanto mais se estuda, mais aparece um padrão novo, em contraposição a um existente. Cada um tem suas vantagens e desvantagens, cabe a cada a um a inteligência para usá-los na situação correta.
Eu pretendo aqui apresentar os que conheco e mais utlizo (acho que uns 20 no total).
and…be welcome!