Rimani con il GoF. Inoltre, ti suggerisco di leggere quanto segue:
"Workbook di Java (TM) di Design Patterns" di Steven John Metsker (ISBN 0201743973)
Penso che questo libro sia un bel complemento del GoF o potrebbe essere usato al sicuro invece del GoF se stai imparando o lavorando con Java. Libri simili esistono per altri linguaggi come C # e Ruby, ma non posso attestarne la qualità poiché non li ho letti.
"Refactoring Workbook" di William C. Wake (ISBN 0321109295)
Il refactoring va di pari passo con i pattern. Questa è una bella cartella di lavoro da leggere.
Brown et al "AntiPatterns: software di refactoring, architetture e progetti in crisi" (ISBN 0471197130)
L'altro lato della medaglia sono anti-pattern, odori di codice che urlano per il refactoring. Questo libro è buono (almeno il primo semestre riguarda gli anti-pattern relativi al software).
Craig Larmans "" Applicazione di UML e pattern: introduzione all'analisi orientata agli oggetti e progettazione e sviluppo iterativo (terza edizione) "(ISBN 0131489062)
Il libro di Larman sta diventando praticamente un libro di testo preferito per i corsi di laurea in ingegneria del software e analisi dei sistemi. Fa un buon lavoro nel percorrere l'utilizzo di UML e dei pattern in un processo iterativo.
"Purely Functional Data Structures" di Chris Okasaki (ISBN 0521663504)
Considererei questo libro una volta che avrai sviluppato una buona conoscenza pratica di modelli, anti-pattern e ri-factoring. È un trattato teorico di schemi e strutture dati da un punto di vista puramente funzionale.
Una delle cose con il GoF (e libri che portano quel testimone) è che quei pattern sono il prodotto di un'epoca in cui la programmazione generica veniva finalmente realizzata in C ++. Gli schemi qui presentati esistevano per adattarsi a un paradigma OO e procedurale / algoritmico.
Molti di questi pattern (visitatore ad esempio) non hanno molte ragioni per esistere in linguaggi che trattano le funzioni come oggetti di prima classe. Non toccherò questo libro senza una buona conoscenza dei modelli e dei linguaggi funzionali, sebbene