Rebecca is the author of Designing Object-Oriented Software and Object Design: Roles, Responsibilities, and Collaborations.
The following quote from Rebecca appears on the back cover of Design Patterns: "This book is an important contribution to practicing object designers and developers! Have you ever tried to describe an idea that you don't have a precise name for? It can be frustrating. Design Patterns organizes and presents a catalog of proven design idioms for structuring, creating, and manipulating objects. Most importantly, it names these design constructs, allowing teams to share a common vocabulary."
When I originally did a pre-publication review of Design Patterns I recommended that Addison-Wesley consider publishing the book in a loose-leaf format that would allow for easy updates and additions. In retrospect, it seems extremely naïve that I wished that all the relevant design patterns could fit into one neat, easily updateable volume!
Over the years I’ve distributed dozens of copies of Design Patterns as one of the texts used in my object design classes taught to working professionals—ensuring my students add this book to their professional bookshelf. My students read parts of the original pattern text and made sense out of it. They did so quickly. During class, teams read a pattern, studied and talk about it, then presented it to others. They were expected to critique the pattern and its potential applicability to real design problems they encounter on the job. They explain where they might’ve used this pattern, and if they’ve found alternative ways to achieve the same design flexibility. I’ve tried to engender in my students the belief that to know any pattern deeply, one must examine its nuances and come to terms with the pattern based on their current design needs and past experiences. It is okay that the Composite pattern as originally explained overused inheritance. It is okay to have an internal dialog with the authors as you seek to understand the nooks and crannies and significance of any pattern. Hey, this book predates the wide adoption languages with Interfaces. Yet it is still relevant. Composite is still a valid design idea, although the details of how you would likely implement it are different today. I’ve instilled in my students that this book is for those who want to think—not just blindly copy pattern code and hack it. Thinking requires exercising judgment and making choices that suit the times and the programming language idioms and frameworks that you use.
Fifteen years after publication, Design Patterns still has a big impact on today’s software designer. This summer I twittered that I had several Design Patterns books to give away. They were snapped up within hours. The power of social media! But maybe, just as importantly, it is the staying power of those design patterns that explains why it was so easy to give them away. And I cherish emails I received from those who now relish owning a copy of this classic.