Design Patterns:
Elements of Reusable Object-Oriented Software
Preface
This book isn't an introduction to object-oriented technology
or design. Many books already do a good job of that. 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.
On the other hand, this isn't an advanced technical treatise
either.
It's a book of design patterns that describes simple and
elegant solutions to specific problems in object-oriented
software design.
Design patterns capture solutions that have developed and
evolved over time. Hence they aren't the designs people tend
to generate initially. They reflect untold redesign and
recoding as developers have struggled for greater reuse and
flexibility in their software.
Design patterns capture these solutions in a succinct and
easily applied form.
The design patterns require neither unusual language features
nor amazing programming tricks with which to astound your
friends and managers. All can be implemented in standard
object-oriented languages, though they might take a little
more work than ad hoc solutions. But the extra effort
invariably pays dividends in increased flexibility and
reusability.
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?
A word of warning and encouragement: Don't worry if you don't
understand this book completely on the first reading. We
didn't understand it all on the first writing! Remember that
this isn't a book to read once and put on a shelf. We hope
you'll find yourself referring to it again and again for
design insights and for inspiration.
August 1994
Back to Design Patterns
Back to Patterns Home Page