Design Patterns – Elements of Reusable Object-Oriented Software
I just finished Design Patterns – Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides aka “The Gang of Four” and it was extremely informative. I have seen numerous posts about it being a “must read” for programmers and I finally made it happen. It is great for a few reasons, namely its content, structure, and organization.
If the examples were in Actionscript, I would have been in heaven, but that is kind of defeating the purpose of this book. Its purpose is to create a catalog naming, explaining, and organizing the most used design patterns in object-oriented software. It does just that.
I highly recommend this book to anyone who writes and designs object-oriented code and systems. The book explains exactly what a design pattern is and the four components that make up a pattern (pattern name, problem, solution, and consequences). The book is broken up into three main sections, 1) Creational Patterns, 2) Structural Patterns, and 3) Behavioral Patterns and examples of these types of patterns follow. Prior to these sections the authors walk the user through 8 design patterns in the context of designing a document editor (this helps ease the reader into design patterns and there importance and use in OOP).
Each pattern is described in roughly 10 pages, which is short and succinct, but it still informs the reader greatly. I love the consistency and structure each pattern is broken into as it informs the reader of what is important and it helps the programmer understand when and when not to implement a given pattern. The pattern break down’s repetitive nature helps to compare and contrast patterns quickly and easily as well. Each pattern is broken into the following sections…
- Pattern Name & Classification
- Intent
- Also Known As
- Motivation
- Applicability
- Structure
- Participants
- Collaborations
- Consequences
- Implementation
- Sample Code
- Known Uses
- Related Patterns
Though this list seems somewhat long, remember each pattern is described in about 10 pages. The authors of this book tell you what is important and don’t bog down the text with useless jabber.
I will definitely be using this book as a resource as it can quickly refresh my mind of a given pattern when I’m contemplating it’s use. If the sample code was in AS3 and the examples were current, this book would be ideal, but still it does a great job of presenting the most commonly used design patterns.
If you write code, read this book.



