
Design Patterns
Elements of Reusable Object-Oriented Software
by Erich Gamma, John Vlissides, Richard Helm, Ralph Johnson, Johnson, Ralph · first published 1995
23% recommend62% neutral15% critical
Why HN recommends it
Catalog of object-oriented design patterns that builds a shared vocabulary and a way to think about reusable design, with concrete examples per pattern. Suits developers moving to programming in the large.
Common criticism: Dry and academic; patterns can be overapplied into needlessly complex code
Summarised by Claude from recommending comments
Four software designers present a catalog of simple and succinct solutions to commonly occurring design problems, using Smalltalk and C++ in example code. These 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems.
Affiliate links. As an Amazon Associate I earn from qualifying purchases.








>, the good old Design Patterns book, responsible for more atrocious over-abstracted, This is a misunderstanding of the DP book. It would be similar to saying that the existence of TVTropes.com is responsible for terrible scripts…
on “The most mentioned books on Stack Overflow” ↗…Code Complete is a fine book. The Pragmatic Programmer is okay. But neither book holds a candle to Introduction to Algorithms for career-long usefulness. For that matter, neither one holds a candle to Design Patterns for the ability to expand your mind and improve your ability to think about code (I read both at the same time, and Design Patterns is the only one whose lessons I remember distinctly, years later). I…
on “What is the single most influential book every programmer should read?” ↗Are Design Patterns really so out of fashion with the youth of today that nobody here mentions Design Patterns as their answer? Because it is mine, for better or worse. It took me from understanding OO to understanding…
on “Ask HN: What books had the greatest effect on how you structure your code?” ↗There is a class at Georgia Tech I colloquially referred to as "making sure your coworkers don't hate you." It covered design patterns, software testing, and project management. I'd tack on a basic knowledge of databases to that. These are things you can gain a true functional knowledge of in a couple of weeks, and which not knowing…
on “Ask HN: What are the books you wish your colleagues had read?” ↗There's always the classics: https://www.amazon.com/Design-Patterns-Elements-Reusable-Obj... https://www.amazon.com/Refactoring-Improving-Design-Existing... EDIT: And it appears the website is a direct rip-off of these books.
on “Design Patterns and Refactoring” ↗…Man-Month by Fred Brooks for tech management. Confessions of an Advertising Man by David Ogilvy for advertising/marketing industry. Design Patterns: Elements of Reusable Object-Oriented Software by the "Gang of Four" for OOP software engineering.
on “Ask HN: What book is considered the bible of your field/industry?” ↗…list. Appreciate it. But I see there are a few amazing software books missing from the list such as: - Clean Code (by "Uncle Bob")) [https://www.amazon.com/Clean-Code-Handbook-Software-Craftsma...] - Design Patterns (by "Gang of 4") [https://www.amazon.com/Design-Patterns-Elements-Reusable-Obj...] - Introduction to Algorithms (by "CLRS") [https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press...]
on “Professional programming resources” ↗…so, it will formidably crystallize knowledge you've been acquiring subconsciously. You'll have probably been having gut feelings about why certain things are wrong or clunky and others are elegant, and Design Patterns will give you a vocabulary to describe these things. If you read it as a beginner, the subtleties of it all will go over your head, and you'll end up trying to cram design patterns everywhere without…
on “Books Programmers Don't Really Read (2008)” ↗…the airport barstool. Antipatterns are simply a negative version of design patterns. Design patterns in software started with the book Design Patterns: Elements of Reusable Object Oriented Software (aka Gang of Four or GoF), one of the greatest classic works in software engineering. GoF was itself based on the book A Pattern Language, by Christopher Alexander, a classic of the architectural field. Alexander came…
"Design Patterns: Elements of Reusable Object-Oriented Software" by the Gang of Four. It has sold over 500k copies and has been translated to numerous languages. https://en.wikipedia.org/wiki/Design_Patterns
on “Ask HN: What are the most fundamental books on computer science?” ↗…I'd started in a procedural language. Once you have a good grasp of an object oriented language like Java (or Python) and what object oriented programming means, then I'd recommend reading the Gang of Four book on Design Patterns (http://www.amazon.com/Design-Patterns-Elements-Reusable-Obje...) and Martin Fowler's book on Refactoring (http://www.amazon.com/Refactoring-Improving-Design-Existing-...). Those will…
"Design Patterns needs to be read with the understanding that the patterns are for specific types of languages and are not universally applicable." Not really. I've found a use for design patterns in just about every…
on “What is the single most influential book every programmer should read?” ↗1) Gang of Four (Gamma, Helm, Johnson, Vlissides). 2) A good algorithms book, besides being useful in its own right, might help you learn how to isolate units of functionality that can be reused. Maybe CLRS (Cormen,…
on “Validate the books I'll read because I want to become a good software engineere” ↗Design Patterns: Elements of Reusable Object-Oriented Software (also known colloquially as “Gang of Four”).
on “Ask HN: What are the most fundamental books on computer science?” ↗Design Patterns: Elements of Reusable Object-Oriented Software by the Gang of Four.
on “Ask HN: What are some of the best well-written books on computer science?” ↗