Search
Go

Shop by category
 
Design Patterns: Elements of Reusable Object-Oriented Software
Email a friendView larger image

Design Patterns: Elements of Reusable Object-Oriented Software

List Price: $59.99
Our Price: $48.48
You Save: $11.51 (19%)
Shipping: This item ships for FREE with Super Saver Shipping.
In Stock
Usually ships in 1 business days

Note: Item may be sold and shipped by another company. Learn more.
Description:

Four top-notch authors present the first book containing a catalog of object-oriented design patterns. Readers will learn how to use design patterns in the object-oriented development process, how to solve specific design problems using patterns, and gain a common vocabulary for object-oriented design.

Product Details:
Author: Erich Gamma
Hardcover: 416 pages
Publisher: Addison-Wesley Professional
Publication Date: November 10, 1994
Language: English
ISBN: 0201633612
Package Length: 9.8 inches
Package Width: 7.7 inches
Package Height: 1.2 inches
Package Weight: 2.15 pounds
Average Customer Rating: based on 271 reviews
Customer Reviews:
Average Customer Review: 4.5
Write an online review and share your thoughts with other customers.


4An excellent reference work.May 31, 2010
This is not a book that you read then put on the bookshelf. This is a book that you skim over to familiarize yourself with the subject matter, then put on the bookshelf. Then, every time you start a new program or major upgrade, check the table of contents to determine whether or not any of the design patterns described apply to your project. If any do, even in part, you can save yourself considerable time and potential agony by avoiding the proverbial re-inventing the wheel.

0 of 1 found the following review helpful:

4Excellent referrence and a must readMay 26, 2010
A must read for anyone in software development. This is a classic work which carries just as much weight in today's development world.

5Making Order out of Best PracticeApr 20, 2010
This is one of the small selection of books that belongs within arm's reach of any OO developer's desk. Example code is written in C++, but the patterns are applicable to any fully-featured object-oriented language, which includes C++, Java, Smalltalk and C#, just to name a few salient examples. It catalogues the 23 now-classic solutions to object-oriented software design problems whose utility and generality have proven them worthy of a pattern name.

What may be less widely appreciated in the software world is that this book has influenced a more general trend towards pattern languages. This may illustrate better than anything else a central truth about the book - that it catalogues and describes existing best practice. If you have done OO design work for any length of time, you will probably have come up with a few of the patterns spontaneously, as they represent the solutions to problems that tend to arise routinely during the designer's work. This is not to say that you don't need the book - quite the opposite. Firstly, there are 23 of these patterns, and it is a designer of rare talent who has spontaneously come up with all 23. Secondly, this is rather a finished documentation of rather finished solutions, and its version of any given solution will help you avoid many pitfalls. Thirdly, we all need reference material from time to time, and this is a central foundational reference work of object-oriented design.

The examples are catalogued in a consistent and clear fashion beginning with "Intent" - why you would need it - and "Also Known As", since these patterns had already acquired names in the wild and this book seeks to organise them into a common language rather than to generate new material. "Motivation" describes the purpose of the solution in more detail, sometimes with a concrete example documented in UML and sometimes with diagrammatic portrayals of GUI goals and the like. Next comes "Applicability", which defines in bullet-point list form the circumstances in which you might want to use the pattern. "Structure" is documented in UML, now the industry standard diagramming language for object-oriented structure. "Participants" describes the object types, or classes, which go to make up the pattern. "Collaborations" describes in text form how the various participants work together and for what guarantees they rely on one another. "Consequences" describes the advantages and penalties for the design of using the pattern in question - yes, there are usually some penalties! Implementation is usually the most substantial sub-section and includes an example implementation programmed in C++ and detailed discussion of the concrete design decisions. "Known Uses" documents some examples of the use of the pattern that have been captured in the wild, while "Related Patterns" closes each section by documenting other patterns which are either interchangeable or interoperable with the pattern.

The patterns themselves are grouped into Creational, Structural and Behavioural categories. Usefully, the inside covers are printed with an index of the patterns in the three groups described above, and at the back a Relationship Diagram showing the links between the different patterns and examples of the graphical notation indicating how Class Diagrams, Object Diagrams and Interaction Diagrams are laid out. All three of these can be studied in more depth in a UML primer such as UML Distilled: A Brief Guide to the Standard Object Modelling Language (3rd Edition).

All-in-all, the book is a masterpiece of clarity in software literature and a true classic, if a little dry. Most of us use a few of the patterns routinely, even unthinkingly, a few occasionally, and a bunch of them not at all. I encountered the Visitor pattern while working for an Investment Banking team and found I hardly knew it, while I used the Decorator Pattern almost to excess in my own HeadCase application. Other books actually warn against "Singeltonitis", so overused has the pattern become. This volume is agnostic, merely documenting how to do it and what the pros and cons are. It is also a standard work, so an OO designer can be expected to be familiar with at least some of it at interview. It would seem unwise to do without a copy ready to hand.

Correction: As a commentator has pointed out, technically the diagrams are in OMT, having been published prior to the standardisation of UML. (Which is still growing to this day.) As OMT is succeeded and subsumed by UML, strictly the diagrams are both OMT and UML, but the academic detail deserves to stand corrected, even if it would be of little interest to any serious professional using the book for practical reference. At any rate, all the diagram types used can be found in any standard work on UML.

1 of 1 found the following review helpful:

4I gave up writing software after reading this bookApr 08, 2010
This book shows how to write reusable software in object oriented paradigm. Reusable software has been the holy grail in software architecture. The difficulty of writing good usable software is tremendous; a great deal of thoughts have to go into writing software. After reading this book, I decided it was just too hard for me to write reusable object-oriented software; I won't be able to write the way the book has preached. I gave up, at least, trying to write reusable object-oriented software. The book was a good reading for me to know the vocabulary of reusable software elements.


1 of 1 found the following review helpful:

5Every other book is a second-hand account of this oneMar 22, 2010
The other books on patterns I've read (Head First, Design Patterns Explained, Applying UML and Patterns) and articles around the net are just quoting this book and trying to introduce new examples with varying success. But the examples in this book are better and first-hand. The other ones are like "this guy said that this guy said that the bridge pattern is like this because other guy said they read it on Design Patterns: Elements of..." At first you may have misgivings about reading an old book, but the newer ones aren't just any better; they are just rehashes of the old one, so they are as much in fault. If you find the book unclear, you're not going to find any better elsewhere.

About Us   Contact Us
Privacy Policy Copyright © , Security Books. All rights reserved.
Web business powered by Amazon WebStore