APLICANDO PADRÕES DE PROJETO
Utilizar padrões de projeto também tem suas desvantagens, a principal é que eles criam uma estrutura um tanto quanto complexa de classes, utilizando-se de herança e delegando chamadas para dar ao código final mais flexibilidade na sua utilização e manutenção.
Criar muitas classes não é necessariamente algo ruim, lembre-se da discussão no começo do artigo: a ideia do paradigma Orientado a Objetos é esconder os dados e facilitar a interação entre objetos. Se você está utilizando uma linguagem Orientada a Objetos, não deve ter medo de criar novas classes ou extrair partes do comportamento, mas é importante saber quando vale a pena fazê-lo.
Apesar do código ficar mais simples, separado em pequenos métodos, quem não conhece os padrões vai precisar entender as várias classes que são criadas e seguir o fluxo do código para entender o que está acontecendo.
A principal dica para utilizar Padrões de Projeto de maneira eficiente é: evite escrever código aplicando um Padrão de Projeto, prefira refatorar para um padrão. Se o código não precisa da flexibilidade proporcionada pelos padrões, evite complicá-lo.
Deixe que seu código evolua e que as regras de negócio lhe digam o que deve ser melhorado. Quem desenvolve utilizando TDD (Test-Driven Development) pode pensar em aplicar um padrão durante a etapa de refatoração, pois terá mais entendimento dos requisitos e da implementação necessária, além da segurança dos testes automatizados.
Antes de decidir refatorar o código para aplicar um Padrão de Projeto, veja quais princípios ele está ferindo e tente fazer correções mais simples. Não se torne um dicionário de padrões, forçando situações para aplicá-los. Pense no contexto do seu problema primeiro e depois na solução que irá aplicar.
Refatorando com Padrões de Projeto
Quando o seu contexto realmente permitir aplicar um padrão, vá em frente e refatore o código. Dê pequenos passos, sempre atualizando testes e garantindo que tudo continua funcionando. Encare os Padrões de Projeto como um destino final de uma caminhada que começa com pequenos passos de refatoração.
Outra grande vantagem dos Padrões de Projeto é que eles são soluções que foram aplicadas por várias pessoas e, como ainda são conhecidos até hoje, resolvem bem o problema. Então ao aplicar um padrão você está utilizando um código que já foi validado por várias pessoas em vários projetos diferentes.
No artigo Is Design Dead, (veja a seção de Referências Externas) Martin Fowler sugere alguns pontos para aproveitar ao máximo os padrões de projeto:
- Invista tempo aprendendo sobre padrões;
- Concentre-se em aprender quando aplicá-los (não muito cedo);
- Concentre-se em como implementar padrões na sua forma mais simples, e adicionar complexidade depois;
- Se você adicionar um padrão, e depois perceber que ele não está ajudando, não tenha medo de removê-lo.
No livro “Refatorando com Padrões de Projeto” são apresentados vários padrões, tendo como plano de fundo um código que será refatorado para aplicar um padrão. Se quiser se aprofundar mais no tema, leia mais em: http://www.casadocodigo.com.br/products/livro-refatoracao-ruby
Espero que o conteúdo apresentado possa ajudar nos primeiros passos e que tenha lhe motivado a ir mais longe. Não deixe de conferir os recursos indicados no final do texto para ter uma visão mais aprofundada do conteúdo e saber quais são os próximos passos.