- Hardcover: 395 pages
- Publisher: Addison-Wesley Professional; 1 edition (November 10, 1994)
- Language: English
- ISBN-10: 0201633612
- ISBN-13: 978-0201633610
- Product Dimensions: 7.5 x 1.1 x 9.4 inches
- Shipping Weight: 1.9 pounds (View shipping rates and policies)
- Average Customer Review: 493 customer reviews
Amazon Best Sellers Rank:
#4,906 in Books (See Top 100 in Books)
- #1 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Reuse
- #2 in Books > Computers & Technology > Computer Science > AI & Machine Learning > Computer Vision & Pattern Recognition
- #3 in Books > Textbooks > Computer Science > Object-Oriented Software Design
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
* Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, 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 then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
What it seems patterns are actually good for is giving common names to popular solutions to problems, to make them easier to call to mind, and easier to discuss with others. Even this much is overrated. Before the advent of patterns, you could have said "callbacks" and people would have understood. Now you say "the Observer pattern".
_Design Patterns_ is none the less valuable, because it is one of those few books that EVERYONE is expected to have read. This is helpful in practice, as you can expect everyone to be familiar with its vocabulary. Few books truly fall into this "required reading" category. The only other that comes to mind is the MIT algorithms text. Many tech pundits claim that every next book is "required reading", and the claim becomes tiring after a while, but this is one of the few that really is.
I would not necessarily purchase it, though. The "pattern" schematic is verbose, and requires pages upon pages to describe something that, once you have seen it in practice once or twice, you will recognize immediately. Omitting the appendixes, the book is barely 350 pages, and presents only 23 patterns. Only a handful of the patterns are truly famous: Singleton, Observer, Template Method ... perhaps a few more. A number of them are poorly presented. Chain of Responsibility, for instance, is just one of many ways to define an event framework and does not belong in a book that doesn't present the alternatives. Mediator is another; there must be dozens of ways to create a Mediator, which most people would call an "event registry" or something else, rather than a Mediator. "Mediator" itself is little more than a name, and won't help you in design.
Some patterns are boring, since modern languages tend to provide them, and we've heard about them many times already: Iterator, Proxy, Memento (serialization). Others, like Command, are geared towards GUIs, and provide little value to other types of applications. Then there are the State and Strategy patterns, which are two sides of the same coin, and needn't be given two different names.
And so on. Definitely do not "study" this book if it seems you "just don't get it". Chances are the book is wrong. It is worth a read through, and a second read through if the terminology doesn't stick the first time, but stop at that. My gut feeling is that this book is most appropriate for someone working on his or her first large project. After that, once the terminology sinks in, the book has little else to offer. And if taken dogmatically, or considered "inspired" or infallible, the book is a hindrance. Finally, overuse of patterns can result in a "kitchen sink" design, instead of a simple one that takes a few patterns, that may or may not be ones from this book, and implements them cleanly. Take the book for what it's worth, but remain skeptical.
Why do I say obvious? Because any programmer worth their salt will over time develop their own home-grown library of patterns and exemplars to reuse. This book merely calls attention to this habit.
Also, as other reviewers have pointed out, the text is too generic and abstract, unless you're into that. Donald Knuth anybody?
Plus the book is too expensive--if you must, buy it used like I plan to. That's right, I haven't read it yet. But I know enough just reading these reviews; sometimes you CAN judge a book by the cover. I am over the age of 13, yes.
(D.E.Knuth: Structured Programming with go to Statements).
Donald Knuth named his fundamental work "The Art of Computer Programming". There are also in art some fundamental techniques. But the Gang of Four reduces art to a collection of Lego-bricks. As already noted by other reviewers there are only isolated and trivial examples in this book. This is no accident or omission. One can't build a nice coherent building with these Lego-bricks.
I have seen on numerous occasion code where I have asked myself: Oh my god, why is this stuff so unbelievable complicated. If one looks closer one notices the Lego-brick notation. The programmer has followed the Gang of Four without much thought. It looks like a Matryoshka with one Facede on another. At they end there is a tiny and trivial routine which does real work.
Wirth's law: "software is getting slower more rapidly than hardware becomes faster" depends to a great deal on these pattern-fetishm. The Java-EE monster is a classical example of Patterns in Action.
The book founded a whole pattern industry. Stranded programmers make their living from giving useless general advice instead of inventing concrete and ingenious solutions.
But there are also advantages: If one sees the pattern-buzzwords one knows the mindset of the programmer. One knows also without detailed investigation that one has to rewrite the blunted code. If one sees on a book cover the word "Pattern" one can savely save the money. This is the dialectic of the pattern-enlightment. If forms an antipattern which should be avoided.
I don't argue for "anything goes". But God has given humans the brain to think themselves. There are no easy and clear-cut solutions for intrigate problems.
If one wants to study fundamental programming techniques one should read:
Douglas Comer: Operating System Design, The Xinu Approach.
Comer demonstrates on a complex problem how software should be structured and coded. I have not noticed the term "pattern" in this book.
But the Pattern-Believer expects simple answers and solutions for complex problems. The Comer book is not suited for such a mindset.
P.S.: The Knuth quote does not relate to the Gang of Four. But it fits to all attempts to put programming a Procrustes bed.
Most recent customer reviews
However, what you don't notice is that the red triangle in the upper left corner indicates that this is a book meant to be...Read more