Start reading Design Patterns on the free Kindle Reading App or on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here.
Programming Books C Java PHP Python Learn more Browse Programming Books

Deliver to your Kindle or other device

Enter a promotion code
or gift card
 
 
 

Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Design Patterns: Elements of Reusable Object-Oriented Software [Kindle Edition]

Erich Gamma , Richard Helm , Ralph Johnson , John Vlissides
4.5 out of 5 stars  See all reviews (376 customer reviews)

Digital List Price: $47.99 What's this?
Print List Price: $59.99
Kindle Price: $37.67
You Save: $22.32 (37%)

Free Kindle Reading App Anybody can read Kindle books—even without a Kindle device—with the FREE Kindle app for smartphones, tablets and computers.

To get the free app, enter your email address or mobile phone number.

Formats

Amazon Price New from Used from
Kindle Edition $37.67  
Hardcover $49.44  
Paperback --  
Multimedia CD $45.25  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

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.

Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.



Editorial Reviews

Amazon.com Review

With the profusion of technologies, it's rare to say that a particular book is required reading for developers. Design Patterns: Elements of Reusable Object Oriented Software is one of those indispensable texts for anyone who develops software using objects. This CD-ROM edition contains a hypertext version of the book, along with additional features that make it easy to use patterns in your own programs.

The CD-ROM works with any Java-enabled browser (Internet Explorer 4.0 and Netscape Communicator 4.0.) It includes the full text of the printed book along with the richness of hypertext links to get the most out of patterns quickly. (Two versions of the text, one for 640 x 480 resolution and one for higher resolutions, are provided.)

Patterns are higher-order designs, which occur repeatedly in object-oriented design. The heart of this title is the "pattern catalog" of 23 basic patterns, ranging from creational patterns, such as Factory and Builder, and structural patterns, such as Facade and Flyweight, to behavioral patterns, such as Command and Mediator. The CD-ROM details each design element along with reasons to use it and sample code in Smalltalk and C++. (With the online version, you can even cut and paste sample code into your programs.) You can use the Java search engine to search the CD-ROM for keywords, and the online version lets you cross-reference patterns easily. All in all, the Design Patterns CD is an appealing new version of one of the most essential texts for object-oriented developers.

Review

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

Product Details

  • File Size: 8210 KB
  • Print Length: 395 pages
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Addison-Wesley Professional; 1 edition (October 31, 1994)
  • Sold by: Amazon Digital Services, Inc.
  • Language: English
  • ASIN: B000SEIBB8
  • Text-to-Speech: Enabled
  • X-Ray:
  • Word Wise: Not Enabled
  • Lending: Not Enabled
  • Amazon Best Sellers Rank: #36,087 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?


Customer Reviews

Most Helpful Customer Reviews
391 of 411 people found the following review helpful
5.0 out of 5 stars The best way to really learn object-oriented design March 6, 1997
By A Customer
Format:Hardcover
This book really changed my way of thinking about object-oriented design. The idea is that when designing a new class hierarchy, though implementation details may differ, you often find yourself using the same kinds of solutions over and over again. Rather than approaching each design task out of context as an individual, isolated problem, the strategy is to study the task and identify the underlying design pattern most likely to be applicable, and follow the class structure outlined by that pattern. It's a "cookbook" school of design that works amazingly well.
There are other advantages to this book. It isolates 23 of the most common patterns and presents them in detail. You wouldn't think that 23 patterns would be enough, but once you become adept at recognizing patterns, you'll find that a large fraction of the patterns you use in practice are among these 23. For each pattern, the book carefully presents the intent of the pattern, a motivating example, consequences of using that pattern, implementation considerations and pitfalls, sample code (C++ or Smalltalk), known uses of that pattern in real-world applications, and a list of related patterns.
Upon first reading, you will start to recognize these patterns in the frameworks you see. Upon second reading, you'll begin to see how these patterns can help you in your own designs, and may also start to see new patterns not listed in the book. Once you become familiar with the pattern concept, you will be able to originate your own patterns, which will serve you well in the future. One of the most valuable contributions of this book is that it is designed not merely to help you identify patterns, but to give you a sense of which patterns are appropriate in which contexts.
Read more ›
Comment | 
Was this review helpful to you?
245 of 256 people found the following review helpful
4.0 out of 5 stars Must read, but requires some sophistication May 15, 2000
Format:Hardcover
As you probably already realize from the large number of reviews, this book is one of the seminal books on patterns in software development. If you are a professional software developer, you must read this. If you are learning to write good software, this is a book that you will need to take on at some point, but I urge some caution.
In particular, many of the patterns in this book represent highly distilled wisdom about effective solutions -- distilled so far that, unless you have implemented code that realizes the pattern in question already, you may have trouble absorbing the material. I find that programmers-to-be who dive into this book, often end up talking annoyingly about "applying patterns" without having a real grasp of how these things translate (with some distortion and compromise) into real projects.
That being said, an excellent way to bridge the gap is to read this book along with "Pattern Hatching : Design Patterns Applied" by John Vlissides. That book is a chatty companion piece for this one -- I found myself understanding how to incorporate patterns into my day-to-day design work much more after reading both books.
See: Pattern Hatching : Design Patterns Applied [also at Amazon.com]
Overall, while this book is an extremely important contribution to software developers, it is structured in a way that makes the material difficult to absorb if you aren't approaching it with substantial previous knowledge about developing software. You can start with some of the simpler patterns (Singleton, for example) and work through the harder ones, but only by implementing projects and stumbling upon these yourself will you really feel a flash of recognition as you read them in the book.
Comment | 
Was this review helpful to you?
352 of 380 people found the following review helpful
4.0 out of 5 stars Now that the hype is over... January 19, 2005
Format:Hardcover
... well, it's over. "Patterns" have not revolutionized the world. Nor does this book need to be "studied" for deep insights.

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.
Read more ›
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Amazing. I knew design patterns even before to buy ...
Amazing. I knew design patterns even before to buy the book. But the book have added many details... so it was a good purchase! Excellent. A true classic.
Published 6 days ago by Amazon Customer
4.0 out of 5 stars Good general reference for non-CS types.
As someone who is new to CS (I am an electrical engineer by education and trade), it is helpful to have a reference of various design patterns. Read more
Published 24 days ago by Nicholas Lalic
5.0 out of 5 stars Awesome !!!
design pattern starts here, basis of all OO design solution.
Published 27 days ago by Krishna
5.0 out of 5 stars Five Stars
Solid solutions from experienced engineers.
Published 1 month ago by Griswald W. Brooks
5.0 out of 5 stars Has a great reference in the front cover that has all of ...
This is one of my go-to development books! Has a great reference in the front cover that has all of the covered patterns with a short description. Read more
Published 1 month ago by A. Ladwig
5.0 out of 5 stars A must have for software developers / designers
All of the patterns described by the gang are useful today
Published 1 month ago by J. E. G. Reynoso
3.0 out of 5 stars Good book, but not necessarily the best "first book on patterns" to...
This book is a classic in the concept of Pattern-oriented design and overall, it's worth a read in general. Read more
Published 1 month ago by Greg Palen
5.0 out of 5 stars A great book for high-level explanations.
This is a great Design Patterns book, and hits the list of books you really should have on your shelf. Read more
Published 2 months ago by Christopher Kawasaki
3.0 out of 5 stars I still highly recommend it for Software Developers/Engineers
It maybe a classic, but it sure is a hard, technical, read. I still highly recommend it for Software Developers/Engineers, as a reference to Design Patterns, but wouldn't... Read more
Published 2 months ago by Amazon Customer
4.0 out of 5 stars For some things paper is still better.
Kindle hurts the experience again. It re-justifies the code sometimes when I flip from description to code samples, and I lose my place.
Published 2 months ago by m
Search Customer Reviews
Search these reviews only

More About the Authors

Discover books, learn about writers, read author blogs, and more.

What Other Items Do Customers Buy After Viewing This Item?


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Look for Similar Items by Category