Este livro apresenta os conceitos básicos sobre Padrões de Projeto: como utilizá-los para projetar software reutilizável, suas vantagens e desvantagens quando aplicados em ambientes WEB com Persistência, além da utilização de Padrões de Projeto dos catálogos GoF e Java EE para resolução de problemas específicos de sistemas WEB com Persistência. Os exemplos foram projetados em Java, mas, as soluções apresentadas podem ser usadas em qualquer linguagem orientada a objetos. Além dos códigos em Java, consta deste livro anotações em UML para a descrição conceitual do padrão. Serão vistos os conceitos de boa prática de programação no desenvolvimento de sistemas reutilizáveis. Os conceitos de coesão, acoplamento e aberto-fechado também são descritos, juntamente com os princípios de Projeto Reutilizável Orientado a Objetos. São apresentadas soluções utilizando padrões de projeto, e as especificações dos padrões utilizados para esta solução, além do detalhamento do problema, da solução, das consequências de sua aplicação e alguns anti-patterns. Algumas técnicas de estudo são apresentadas juntamente com os resultados e as considerações finais.