Padrões de Projeto (Design Patterns)
Postado por Osvaldo Santana
Programo computadores há muito tempo. Quando iniciei minha ‘carreira’ usava a linguagem BASIC e LOGO em meu MSX Expert (BASIC) e um TK3000 (LOGO). A linguagem BASIC causou alguns estragos gigantescos em meu cérebro tornando superdifícil aprender a programar em uma linguagem estruturada futuramente. Foi difícil eu perder o meu apego ao “GOTO”.
Mas depois de ter lido um livro sobre Turbo Pascal, cujo nome do autor infelizmente não me recordo, todo o que eu já tinha visto sobre o paradigma procedural se encaixou magicamente e aquilo começou a fazer sentido pra mim. Eu gosto de chamar isso que aconteceu comigo de ‘iluminação’.
Então esse livro sobre Turbo Pascal me iluminou para que eu compreendesse o paradigma procedural.
Mas então os programadores gritaram: “Faça-se a OO” e a OO “se fez”. Lá fui eu novamente correr atrás de entender como essa tal de “Programação Orientada a Objetos” funcionava.
Li muita coisa. Vi muito hype em cima do assunto. Vi muita mágica sendo feita e muita mágica sendo desfeita usando-se POO. Mas aquilo ainda não fazia muito sentido pra mim.
Depois de ler um livro chamado “Fundamentos do Desenho Orientado a Objetos” (que falarei no futuro) o meu cérebro começou a criar as conexões entre todo o conhecimento que eu já tinha adquirido. Mas faltava a faísca para produzir o fogo que me iluminaria.
Com a popularização da linguagem Java vários hypes surgiram (e continuam a surgir) e entre eles estavam os “Design Patterns“. Nem dei muita atenção porque as ‘modinhas’ produzidas no universo javanista são tão duradouras quanto a fama que o grupo musical “Polegar” teve no passado.
Certo dia um livro chamado “Design Patterns” caiu em minhas mãos e resolvi folheá-lo. Notei que não tinha uma única linha de código em Java e então percebi que aquilo ali já existia antes mesmo de Java ter começado a lançar suas modinhas.
Comecei a ler o livro e em uma passagem encontrei uma frase que dizia algo parecido com: “No desenvolvimento Orientado à Objetos não desenvolva para tipos, desenvolva para interfaces.” e aí então a faísca foi lançada.
Devorei o livro rapidamente e adquiri uma cópia (uma tradução para o português que estava muito mais barata do que o original em inglês) e devorei o conteúdo em uma semana.
O livro tem alguns capítulos que introduzem o conceito de padrões, fala sobre o modelo MVC (Model-View-Controller) para separação dos componentes de uma aplicação e fala sobre alguns conceitos de OO que são bem interessantes. A partir daí temos os padrões que são catalogados de maneira a possibilitar uma rápida consulta.
Cada padrão acompanha uma descrição, um diagrama explicativo, os casos de uso, os casos onde não devemos usar tal padrão, o relacionamento desse padrão com outros e exemplos em Smalltalk e C++.
Esse livro não é adequado para pessoas que ainda não conhecem os conceitos básicos da Programação Orientada a Objetos pois ele assume que o leitor já conheça ao menos o básico sobre este assunto.
A cópia traduzida que eu tenho é editada pela Bookman e tem uma tradução excelente onde os nomes dos padrões são preservados na forma original em inglês.
Esse livro é um clássico da literatura técnica e algumas pessoas o chamam de “GoF” que é a abreviação para “Gang of Four“, uma alusão aos quatro renomados autores do livro: Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides.
Para comprar: Padrões de Projeto ou Design Patterns
4 Responses to “Padrões de Projeto (Design Patterns)”
Deixe um comentário








Outubro 6th, 2006 at 6:10 pm
Olá. Desculpe usar a área de comments pra isto, mas é que não achei de forma alguma seu email ne form de contato neste blog. Gostaria de uma dica de um bom livro de Python pra comprar. De preferência em português, pois é pra meu irmão que tá começando a estudar mas não é 100% no english. Valeu.
Outubro 6th, 2006 at 10:48 pm
Oi Igor,
Infelizmente, em português, nós não temos muitos livros bons para comprar nas livrarias, mas de qualquer forma existe boa documentação em português lá no site da nossa comunidade:
href=http://www.pythonbrasil.com.br/moin.cgi/DocumentacaoPython
Nas livrarias você poderá encontrar o livro “Mergulhando no Python” que é bom para quem já programa mas cuja tradução para o português é medonha.
Novembro 7th, 2006 at 12:24 am
Um dos grandes problemas no jeito com que a orientação a objetos é implementada em Java, é a herança simples.
Cá entre nós, não conheço nenhum bom programador - que programe utilizando a OO - que ache herança múltipla algo danoso. Muito pelo contrário.
E é isso.
Outubro 9th, 2007 at 11:12 am
[...] O problema dessa explicação é que ela não fornece muitos elementos úteis para que as pessoas possam entender exatamente como isso funciona então irei recorrer à outra citação extraída do livro Design Patterns: [...]