Design Patterns:
Elements of Reusable Object-Oriented Software
Foreword
All well-structured object-oriented architectures are full of
patterns. Indeed, one of the ways that I measure the quality of an
object-oriented system is to judge whether or not its developers have
paid careful attention to the common collaborations among its objects.
Focusing on such mechanisms during a system's development can yield an
architecture that is smaller, simpler, and far more understandable
than if these patterns are ignored.
The importance of patterns in crafting complex systems has been long
recognized in other disciplines. In particular, Christopher Alexander
and his colleagues were perhaps the first to propose the idea of using
a pattern language to architect buildings and cities. His ideas and
the contributions of others have now taken root in the object-oriented
software community. In short, the concept of the design pattern in
software provides a key to helping developers leverage the expertise
of other skilled architects.
In this book, Erich Gamma, Richard Helm, Ralph Johnson, and John
Vlissides introduce the principles of design patterns and then offer a
catalog of such patterns. Thus, this book makes two important
contributions. First, it shows the role that patterns can play in
architecting complex systems. Second, it provides a very pragmatic
reference to a set of well-engineered patterns that the practicing
developer can apply to crafting his or her own specific applications.
I'm honored to have had the opportunity to work directly with some of
the authors of this book in architectural design efforts. I have
learned much from them, and I suspect that in reading this book, you
will also.
Grady Booch,
Chief Scientist, Rational Software Corporation
Back to Design Patterns
Back to Patterns Home Page