- Hardcover: 395 pages
- Publisher: Addison-Wesley Professional; 1 edition (November 10, 1994)
- Language: English
- ISBN-10: 0201633612
- ISBN-13: 978-0201633610
- Product Dimensions: 7.6 x 1.1 x 9.2 inches
- Shipping Weight: 1.9 pounds (View shipping rates and policies)
- Average Customer Review: 474 customer reviews
Amazon Best Sellers Rank:
#13,037 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
- #5 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
Design Patterns is a modern classic in the literature of object-oriented development, offering timeless and elegant solutions to common problems in software design. It describes patterns for managing object creation, composing objects into larger structures, and coordinating control flow between objects. The book provides numerous examples where using composition rather than inheritance can improve the reusability and flexibility of code. Note, though, that it's not a tutorial but a catalog that you can use to find an object-oriented design pattern that's appropriate for the needs of your particular application--a selection for virtuoso programmers who appreciate (or require) consistent, well-engineered object-oriented designs.
This book isn't an introduction to object-oriented technology or design. Many books already do a good job of that...this isn't an advanced treatise either. It's a book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design....Once you understand the design patterns and have had an "Aha!" (and not just a "Huh?" experience with them, you won't ever think about object-oriented design in the same way. You'll have insights that can make your own designs more flexible, modular, reusable, and understandable--which is why you're interested in object-oriented technology in the first place, right? -- From the Preface
This is one of the best written and wonderfully insightful books that I have read in a great long while...this book establishes the legitimacy of patterns in the best way: not by argument, but by example. -- C++ Report
Try the Kindle edition and experience these great reading features:
474 customer reviews
Review this product
Read reviews that mention
Showing 1-7 of 474 reviews
There was a problem filtering reviews right now. Please try again later.
In certain situations you see how this book changed the way the field of computer science developed. Before the writing of the book the authors originally called the Singleton pattern the Solitaire pattern. They changed it last minute (explained in the Conclusion) from Solitaire to Singleton, and that is a major part of why everybody calls it Singleton today.
Some people may have an issue with the age of book. When you read the introduction, they mention that C++ and Smalltalk are cutting edge programming languages. I know C++ pretty well, but I have never used Smalltalk. What I learned from the book was how Smalltalk was fundamental to creating the MVC (Model-View-Controller) framework. In a lot of places the authors point out situations where C++ programmers would implement a pattern one way, and Smalltalk programmers might use the pattern another way.
The book's examples are mostly about text writing programs, windowing, and drawing. These examples fit well for the patterns. You can also see how the current state of programming was much different. Text editors were creating huge innovations back then.
This book requires sophistication as a programmer. It will be a challenging book for pretty much anyone to understand completely. You need to have familiarity with the word choice as well. The authors assume you are well versed in their language. The glossary was pretty good in this book, I would recommend taking a look before you start.
The progression of the book is excellent. There is a lengthy introduction before getting to the patterns. This helps put the entire book in context and prepares you for the challenge to come. Each pattern is unique in subtle ways that the authors explain masterfully.
One hundred years from now this book will still work. The patterns are fundamental to software design itself. I wish most authors were this bold.
However, we are way, way overdue for a new edition, one written using C++11/14 or modern Java for the examples. The C++98-based examples really date this book - lines and lines of code to illustrate what you'd do with a bit of STL in modern C++. The patterns themselves are still relevant, but I hope no one is taking the code examples too seriously.
Whether your projects are desktop, mobile, or other, design patterns are an important part of one's knowledge "toolbox".
Cons: Mildly Dense
Great Reference for Design Patterns. I'm a math student so I'm used to obstinately dense texts and thus this one isn't nearly as bad as some I've seen. But I understand the reviews of others who think it's too dense. My class is working out of a different book that I didn't like, so I asked the teacher for a recommendation and he pointed me here. Definitely a lot better for someone who can read dense texts and has a very busy schedule. 8/10 Would recommend.
This book provides a good share of wisdom about modern systems. Especially because not everything is up to date with modern standards. It teaches how the best practices about twenty years ago can withstand the judgement of time. Reading it helps understanding how big system have been made and how previous engineer designed software. Therefore reading this book can help communication in teams with various generations as well as with managers that were previously developers.
This book is not exactly for "reading": it's best use is practicing every case with a personal implementation.