A primeira surpresa que eu tive foi ver que os exemplos são em C++ e Smalltalk. Eu tinha certeza que seriam em Java... Uma consulta rápida na Wikipedia revelou que o livro foi publicado em 1994 e a primeira versão pública de Java foi disponibilizada em 1996. O resultado é que o entendimento dos exemplos ficou prejudicado, devido a problemas de legibilidade em C++ e o meu desconhecimento de Smalltalk.
A ideia central do livro é documentar um conjunto de "padrões de projeto" - soluções reutilizáveis para problemas corriqueiros. O primeiro capítulo da primeira parte explica as vantagens do uso dos padrões e a filosofia dos padrões apresentados, notadamente:
- A programação baseada em interfaces para ter maior independência da implementação das classes,
- A preferência pela composição (objetos dentro de outros) sobre a herança,
- Utilização de associações dinâmicas ao invés de classes específicas. As aplicações são programadas com base em uma interface abstrata (sem implementação) e, em tempo de execução, uma classe que atende à interface é instanciada (da onde surgem as nem sempre bem faladas "factories").
O segundo capítulo da primeira parte apresenta um exemplo de uso de padrões: um editor de textos "WYSIWYG" (o que você vê é o que você obtêm). Desconfio que o termo é tão anacrônico quanto o exemplo.
A segunda parte do livro é a enciclopédica descrição de 23 padrões, agrupados em "Criacionais", "Estruturais" e "Comportamentais".
Uma crítica recorrente a este livro é que os padrões apresentados na verdade seriam formas de contornar limitações das linguagens utilizadas (notadamente do C++). Por exemplo o conceito de "iterador" (um mecanismo para processar sequencialmente os componentes de uma coleção de objetos) está presente nas linguagens modernas.
Veredito: Como muitos "clássicos" (no sentido amplo"), um livro que merece ser conhecido mas que se mostrará enfadonho e anacrônico para muitos. Certamente existem livros mais modernos que tratam do mesmo tema com uma abordagem menos acadêmica e com exemplos mais próximos da realidade atual.
Nenhum comentário:
Postar um comentário