Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
113 used & new from $23.00

Have one to sell? Sell yours here
 
   
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)
 
 
Tell the Publisher!
I’d like to read this book on Kindle

Don’t have a Kindle? Get yours here.
 
  

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) (Hardcover)

by Erich Gamma (Author), Richard Helm (Author), Ralph Johnson (Author), John M. Vlissides (Author)
Key Phrases: glyph interface, design patterns solve design problems, glyph classes, Abstract Factory, Chain of Responsibility, Sample Code (more...)
4.5 out of 5 stars See all reviews (261 customer reviews)

List Price: $59.99
Price: $41.57 & this item ships for FREE with Super Saver Shipping. Details
You Save: $18.42 (31%)
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Tuesday, July 14? Choose One-Day Shipping at checkout. Details
49 new from $37.95 64 used from $23.00
Also Available in: List Price: Our Price: Other Offers:
CD-ROM (Cdr) $49.99 $40.49 14 used & new from $32.00

Frequently Bought Together

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) + Code Complete: A Practical Handbook of Software Construction + Head First Design Patterns
Price For All Three: $102.73

Show availability and shipping details

  • This item: Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) by Erich Gamma

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Code Complete: A Practical Handbook of Software Construction by Steve McConnell

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Head First Design Patterns by Elisabeth Freeman

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought

Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

by Martin Fowler
4.5 out of 5 stars (138)  $47.99
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series)

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series)

by Scott Meyers
4.8 out of 5 stars (141)  $42.70
The Pragmatic Programmer: From Journeyman to Master

The Pragmatic Programmer: From Journeyman to Master

by Andrew Hunt
4.4 out of 5 stars (143)  $40.46
Head First Design Patterns

Head First Design Patterns

by Elisabeth Freeman
4.6 out of 5 stars (275)  $29.67
Pattern Hatching: Design Patterns Applied (Software Patterns Series)

Pattern Hatching: Design Patterns Applied (Software Patterns Series)

by John M. Vlissides
4.7 out of 5 stars (24)  $28.62
Explore similar items


Editorial Reviews

Amazon.com Review
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.

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

See all Editorial Reviews

Product Details


Inside This Book (learn more)


What Do Customers Ultimately Buy After Viewing This Item?

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)
80% buy the item featured on this page:
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) 4.5 out of 5 stars (261)
$41.57
Head First Design Patterns
10% buy
Head First Design Patterns 4.6 out of 5 stars (275)
$29.67
Code Complete: A Practical Handbook of Software Construction
5% buy
Code Complete: A Practical Handbook of Software Construction 4.8 out of 5 stars (107)
$31.49
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series)
3% buy
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series) 4.8 out of 5 stars (141)
$42.70

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below.
(13)
(6)

Your tags: Add your first tag
 
Help others find this product — tag it for Amazon search
Cønän Œ´Briæn suggested this product show on searches for "rickoverqatest1". What do you suggest?

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

 

Customer Reviews

261 Reviews
5 star:
 (186)
4 star:
 (47)
3 star:
 (17)
2 star:
 (5)
1 star:
 (6)
 
 
 
 
 
Average Customer Review
4.5 out of 5 stars (261 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
288 of 299 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
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.

I think this book is particularly valuable to many C++ and Java programmers, because of the dynamic and flexible design philosophy it follows. (Its two fundamental principles of reusable OO design are: "Program to an interface, not an implementation" and "Favor object composition over class inheritance".) I've found that many C++ books unfortunately tend to emphasize a rather static and inflexible design philosophy. Many C++ programmers do not realize how the language and the books they've studied from have been limiting their thinking until they have been exposed to ideas from other lanugages. The authors of this book have obviously been influenced by other languages as well, especially Smalltalk, and have brought many of its best lessons to C++ design. Most Java books seem to take after the C++ books, even though Java is a more dynamic language. This book may help Java programmers take full advantage of the extra power offered by their language, if they look deeply enough into some of the lesser-known features its runtime system affords.

Last, but not least, this book is valuable because it names the patterns it uses, and so gives programmers a common vocabulary to describe design concepts, rather than particular implementations. You'll find yourself saying things like, "That would be a good use for a Decorator", or "Should we use a Facade or a Mediator in this case?" I encourage readers of this book to use this vocabulary with other programmers.

In summary, this is one of the few books that I think belongs on every programmer's "must-have" list. Not to overuse a cliche, but like object-oriented design itself, the pattern concept is one of those rare paradigm-shifts in computer programming. It is equally valuable to expert professional and novice student alike. The book has a home page at http://st-www.cs.uiuc.edu/users/patterns/DPBook/DPBook.html

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
150 of 158 people found the following review helpful:
4.0 out of 5 stars Must read, but requires some sophistication, May 15, 2000
By Russell Belfer (San Mateo, CA United States) - See all my reviews
(REAL NAME)   
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 Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
46 of 47 people found the following review helpful:
5.0 out of 5 stars Possibly the most practical textbook I've read, October 31, 2000
By Joel Schultz (Monroeville, PA USA) - See all my reviews
I've been a software developer in C++ for some time. I would have to agree with the reviews that mention that most C++ textbooks rarely show the full scope and power of what this language is capable of, until you look at modern OO languages like Java and how they have been put to use. After all, those are language textbooks, not OO design/philosophy books.

This book, on the other hand, made clear the "why" behind many software library architectures I've used, from the basic Java classes and AWT to things done in MFC, COM and the Stingray MFC extension libraries. Not only did it give an explanation, but it explicitly set out the "how-tos" on using these patterns yourself (complete with diagrams illustrating the structures and interactions), and more importantly when and when not to use particular patterns.

For me at least, the most difficult part of designing an application is not coming up with good algorithms or efficient routines, but is constructing a sensible, easy-to-maintain architecture that will hand the demands placed on it...without writing excessively convoluted code. This seems more all the more difficult the larger the application gets. The patterns in this book clarified many things which I wish I had known earlier. A few patterns that I had "discovered" through much trial-and-error and observation were set out, often in a much cleaner form than I had come up with myself. Several of the patterns in the book were immediately applicable to a project I was working on, helping to speed through what likely would have been another messy and slow design phase.

I would recommend ths book for any OO designer. At the very least, it will enable you to understand why various libraries were implemented in certain ways. At best, it will provide a useful toolkit of proven solutions enabling one to get the most out of an OO language such as C++ or Java, a toolkit that can be drawn on to solve your own architectural issues without reinventing the wheel.

The only warning I would give about this book is to reiterate the warning in the preface's very first paragraph: "This book assumes you are reasonably proficient in at least one object-oriented programming language, and you should have some experience in object-oriented design as well. You definitely shouldn't have to rush to the nearest dictionary the moment we mention 'types' and 'polymorphism', or 'interface' as opposed to 'implementation' inheritance."

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

4.0 out of 5 stars Great book, but JAVA programmers beware
First let me start with the good points about this book.
This book absolutely rocks in terms of ways in which you can write a beautiful piece of code. Read more
Published 1 month ago by Anshul Tyagi

4.0 out of 5 stars Excellent Place To Start
This is an excellent place to start when you have a problem. It won't do the work for you, but it will get you off on the right foot.
Published 1 month ago by George

4.0 out of 5 stars "Head First Design Patterns" is a much better introduction
Nobody is going to take away GoF's mantle, but is the 1995 book still the best available reference on, or introduction to, the subject? Read more
Published 3 months ago by Dimitri Shvorob

5.0 out of 5 stars Very good book
This is a very good book by the famous GOF. I feel that this volume is a must have for the experienced application programmer. Read more
Published 4 months ago by Yuanchyuan Sheu

5.0 out of 5 stars Delivered on time and in best condition
The book was delivered in timely fashion. It is in a good condition. I have no complains on the transaction
Published 4 months ago

4.0 out of 5 stars Great Reference Book
I bought this book since it was required for a computer science course. This book is great as a reference. Read more
Published 5 months ago by Brent Harvey

5.0 out of 5 stars Thank you!
Great service! Purchased the book as a gift. Gift receiver asked for this book and is working through it.
Published 6 months ago by Julie Ann Warrington

5.0 out of 5 stars The Classic Catalog
This is THE dictionary of design pattern!
Do we comment on dictionaries?

The structure is neat and searchable,
I wouldn't recommend it as an... Read more
Published 6 months ago by Husain Mohd Naser

5.0 out of 5 stars Book on programming
My grandson wanted it, I got it and he loved it. The order shipped and arrived in a timely fashion and it was in good condition.
Published 6 months ago by S. Geissler

4.0 out of 5 stars Gang of Four Rocks - Use it in undergrad bought it again for Grad
I don't know if there is a better book on Design Pattern than this book written by the Gang of Four. Read more
Published 7 months ago by Anuradha Uduwage

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
New! See all customer communities, and bookmark your communities to keep track of them.
This product's forum (1 discussion)
  Discussion Replies Latest Post
Welcome to the Design Patterns forum 0 November 2005
See all discussions...  
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]


Active discussions in related forums
  Discussion Replies Latest Post
C# or Java? 32 6 days ago
   


Product Information from the Amapedia Community

Beta (What's this?)



Look for Similar Items by Category


Work and Roll with DEWALT

DEWALT Job Site Radio
While supplies last, enjoy special pricing on the DEWALT work site radio. Power it and you'll be rockin' and chargin' your way through a hard day of work.

Shop more chargers and radios

 

Big Savings in Books

Bargain Books
Find great titles at fantastic prices in our Bargain Books Store.
 

Buy Three Books, Get a Fourth Free

4-for-3 Books
Order any four eligible books under $10 and get the lowest-price book free in our 4-for-3 Books Store. See more details.
 

Black & Decker Drills

Shop for Black & Decker Drills
From light duty to high performance, Black & Decker offers a complete line of drills for every job.

Shop now

 

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Where's My Stuff?

Shipping & Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue shopping: Top Sellers
Paranoia
Paranoia by Joseph Finder
Glenn Beck's Common Sense
Finger Lickin' Fifteen
Finger Lickin' Fifteen by Janet Evanovich
My Soul to Lose
My Soul to Lose by Rachel Vincent

Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates