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.
From the Preface
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?
C++ Report
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.
From Book News, Inc.
A catalog of solutions to commonly occurring design problems, presenting 23 patterns that allow designers to create flexible and reusable designs for object-oriented software. Describes the circumstances in which each pattern is applicable, and discusses the consequences and trade-offs of using the pattern within a larger design. Patterns are compiled from real systems, and include code for implementation in object-oriented programming languages like C++ and Smalltalk. Includes a bibliography. Annotation copyright Book News, Inc. Portland, Or.
Design Patterns: Elements of Reusable Object-Oriented Software ANNOTATION
If you're looking for a book which will introduce you to object-oriented design (OOD), look elsewhere: this beautifully-written book is something quite different, a book of design patterns which prescribe simple solutions to the problems programmers face in object-oriented software design. This book will change the way you think about OOD with its clear text and examples so elegant that you'll kick yourself for not thinking of them yourself. With these insightful examples to learn from, you'll be able to make your own software more reusable, portable and understandable by learning how to use patterns to solve specific design problems. The authors liken Design Patterns to an architect's pattern book, filled with designs which have stood the test of time in decades of OO programming along with explanations of where each pattern could and should be used and the pros and cons of using the particular pattern in a larger design. Patterns include code for implementation in object-oriented languages like C++ and Smalltalk. This is the OO programmer's Bible, don't miss it.
FROM THE PUBLISHER
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.
FROM THE CRITICS
Booknews
A catalog of solutions to commonly occurring design problems, presenting 23 patterns that allow designers to create flexible and reusable designs for object-oriented software. Describes the circumstances in which each pattern is applicable, and discusses the consequences and trade-offs of using the pattern within a larger design. Patterns are compiled from real systems, and include code for implementation in object-oriented programming languages like C++ and Smalltalk. Includes a bibliography. Annotation c. Book News, Inc., Portland, OR (booknews.com)