Terminando o curso “Design Patterns para bons programadores em C#”, da Caelum, onde vi alguns padrões de projeto, fui desafiada a escrever a respeito, concluindo o que aprendi no curso.
Sobre Padrões de Projeto, vejo que são soluções elegantes para resolvermos os problemas do dia a dia de desenvolvimento como vários ifs, repetição de código, trechos de código parecidos, alto acoplamento entre as classes e classes e métodos que tem variadas funções (baixa coesão). Os padrões de projeto resolvem esses e outros problemas, visando um código com qualidade.
Os padrões de projeto fazem uso de abstrações como interfaces e classes abstratas. Implementam classes coesas, pequenas, com responsabilidade única, o que facilita o entendimento e manutenção dessas classes, e, também, a expansão do sistema mantendo a qualidade do código. Antes da implementação desses padrões, o mais importante é o entendimento do conceito por detrás de cada um deles, ou seja, por que surgiu e em quais situações deve ser aplicado. Se eu entender o conceito atrás de um padrão, poderei identificar as situações no meu dia a dia de desenvolvimento onde aplicar determinado padrão ou outro, sempre visando um código de qualidade, utilizando os conceitos de Orientação a Objetos.
Em resumo, os padrões de projeto aplicam os conceitos de Orientação a Objetos, como interfaces, classes abstratas, baixo acoplamento, alta coesão, independência funcional, ocultamento de informação. Aplicando padrões de projeto na minha maneira de programar estarei utilizando a OO.