O que é padrão de projeto? Para que servem os padrões de projetos?
Essas são perguntas que todo desenvolvedor deveria fazer antes de inicializar um projeto.
Todos nós já usamos bibliotecas e APIs comerciais. Nós a pegamos, escrevemos alguns códigos, compilamos em nossos programas e aproveitamos um monte de códigos que outra pessoa escreveu. Pense nas APIs e em todas as funcionalidades que elas lhe dão: rede, I/O, etc. As bibliotecas e APIs demoram um tempão para chegar a um modelo de desenvolvimento onde podemos apenas selecionar os componentes e utilizá-los. Mas elas não nos ajudam a estruturar nossos próprios aplicativos de maneiras mais flexíveis, faceis de entender e manter. É aí que os Padrões de Projetos ou Design Patterns entram.
Os padrões de projetos não são nada mais que o uso dos princípios de design orientado a objeto, estão num nível acima das bibliotecas. Os padrões de projetos nos dizem como resolver alguns problemas, e é tarefa nossa adaptar esses designs para adequá-los a nosso aplicativo.
"Mas mesmo que eu siga o encapsulamento e conheça abstração, herança e polimorfismo, preciso mesmo conhecer os Padrões de Projetos? Não é muito direto? não é por isso que fiz todos esses cursos sobre Orientação a Objeto?"
Este é um dos mal-entendidos do desenvolvimento orientado a objeto: que conhecendo os princípios de Orientação a Objetos automaticamente seremos bons na construção de sistemas flexíveis, reutilizáveis e de fácil manutenção. Lembre-se, conhecer conceitos como abstração, herança e polimorfismo não faz de você um bom designer orientado a objeto. Um bom design pensa em como criar designs flexíveis que possam lidar com mudanças.
Obs.: Os padrões de projetos não entram diretamente no seu código, primeiro entram em seu CÉREBRO.
Veja mais sobre padrões de projetos em:
http://www.dofactory.com/Patterns/Patterns.aspx
http://pt.wikipedia.org/wiki/Padr%C3%B5es_de_projeto_de_software
E para descontrair:
http://desciclo.pedia.ws/wiki/Gambi_Design_Patterns
Até mais,
Hugo Estevam
Assinar:
Postar comentários (Atom)
Comments (0)
Postar um comentário