Design Patterns: Elements of Reusable Object-Oriented Software
Review by Sven Woltmann
Every programmer should actually have read this classic. “Actually,” because it is written in a very academic style and therefore difficult to read – especially if you’re a non-native speaker and read it in the original English edition.
It describes some of the most relevant design patterns (if not the most relevant ones of all) and their relationships with each other in great detail.
You’ll notice that the book is already 25 years old: the code examples are partly outdated from today’s point of view, and they entirely ignore newer aspects like concurrency. Nevertheless, every programmer should have this work on his bookshelf and know, recognize, and apply the classic 23 design patterns.
If you prefer something more practical, I recommend the online course “Java Design Patterns” by Dr. Heinz Kabutz, author of the well-known JavaSpecialists’ newsletter.
🎧 Suitable as an audiobook? No, due to numerous code examples and diagrams.
Other Recommendations From This Book’s Genres
Pattern Hatching: Design Patterns Applied
Clean Code: A Handbook of Agile Software Craftsmanship
Refactoring: Improving the Design of Existing Code
Clean Craftsmanship: Disciplines, Standards, and Ethics
Working Effectively with Legacy Code
The Pragmatic Programmer: From Journeyman to Master
Growing Object-Oriented Software, Guided by Tests
The Clean Coder: A Code of Conduct for Professional Programmers
Agile Software Development: Principles, Patterns, and Practices
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Domain-Driven Design: Tackling Complexity in the Heart of Software
Implementing Domain-Driven Design
Extreme Programming Explained: Embrace Change
The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations