Design Patterns
The 1994 book by Gamma, Helm, Johnson and Vlissides, known as the Gang of Four, that named and catalogued 23 object oriented design patterns such as Factory Method, Observer, Strategy, Adapter and Decorator. It gave the industry a shared vocabulary for design decisions. It suits developers with solid object oriented experience who want the original, precise description of each pattern and the trade-off it makes, rather than a quick tutorial.
1st edition (1994)
Addison-Wesley · Sept 2026
416
Goodreads · Sept 2026
4.2/5 (12,053 ratings)
Goodreads · Sept 2026
23
Addison-Wesley · Sept 2026
Book
Other
Gamma, Helm, Johnson and Vlissides
Advanced
around $55
What the book contains
The book has two parts. The first introduces design patterns through a case study, the design of a document editor, and explains principles that run through the whole catalogue, most famously "program to an interface, not an implementation" and "favour object composition over class inheritance".
The second part is the catalogue of 23 patterns in three groups:
- Creational (5): Abstract Factory, Builder, Factory Method, Prototype and Singleton.
- Structural (7): Adapter, Bridge, Composite, Decorator, Facade, Flyweight and Proxy.
- Behavioural (11): Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and Visitor.
Each pattern follows the same structure: intent, motivation, applicability, structure diagram, participants, collaborations, consequences, implementation notes, sample code (in C++ and Smalltalk), known uses and related patterns. The consequences section, where the trade-offs are spelled out, is the most valuable part of each entry.
How it holds up
Goodreads shows an average of 4.2 out of 5 from about 12,000 ratings as of September 2026. It remains the reference that other patterns material builds on. Some patterns have since become language features (Iterator in almost every language, Strategy as a function passed as an argument), and Singleton is now widely treated as something to use sparingly. The examples use C++ and Smalltalk and 1990s GUI and editor scenarios, which can feel distant.
How to read it
- Read the introduction and the case study first; they explain why patterns matter.
- Do not read the catalogue cover to cover. Start with the most used patterns: Strategy, Observer, Factory Method, Adapter, Decorator, Composite, Command and Template Method.
- For each pattern, focus on intent, applicability and consequences, then find an example in a framework you use.
- Implement two or three patterns in your own language to see how the C++ structure simplifies.
- Treat it as a reference afterwards, looking up a pattern when a design discussion names it.
Friendlier options
If you are new to patterns, a modern, visual introduction in your own language is an easier first pass, with this book as the follow up for precision. Head First Design Patterns and well known pattern websites with diagrams are common starting points.
Common questions
Is it outdated? The code examples are, but the pattern descriptions and their trade-offs are not. It is still the standard reference.
Do I need to know C++? It helps to read the samples, but the diagrams and prose carry the ideas.
Should I apply all 23 patterns? No. Patterns solve specific problems; using them where the problem does not exist makes code harder to read.
Best for: developers with a few years of object oriented experience who want the original, authoritative catalogue.
Ready to start?
Opens on Gamma, Helm, Johnson and Vlissides in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.