Undoubtedly opinions change over time, and seeing as I’ve waited quite a while to review this book from when I began reading it I’ve had time for the book and its concepts to percolate. My final opinion is that this book does offer a good entry level look into design patterns, and for those who take the time to read through this book you will benefit greatly to continue onto its inspiration, the original Gang of Four read
, or also onto Fowler’s Patterns of Enterprise Application Architecture
Since most people will skim to about this point before skipping on happily to something else, I’ll take this time to give my review a summary:
Head First Design Patterns is a good book for those interested in breaking the ice on design patterns. Once you get the training wheels off it’s time to move on. This book is neither the beginning nor the end point for object oriented analysis and design and design patterns. Read on for recommendations of where I think we can go from here.
The Long, Painful and Boring Review
You’re still reading this? Ugh, well I guess that means I’ve got more writing to do. The Head First series is a series of books from O’Reilly that make extensive use of big images, fancy fonts and unique styles to trick your brain into paying attention. This idea is novel and does actually help in some scenarios. For myself, I find that if I can link the content of the book to my own needs, I’ll remember things doubly easy. The Head First series really helps in this department, as they tackle simplified cases of what you might truly run into.
Head First Design Patterns doesn’t depart from the style that the series requires, and quickly gets the reader immersed into patterns. Starting with the strategy pattern to keep ducks in line, the book continues on at a steady pace introducing the most important of the original GoF patterns that are still applicable today. The book also has a small section towards the back as a quick reference of certain patterns that didn’t make the cut, but were worth the mention.
The primary language of the book is Java, as with many of the Head First series. This shouldn’t be seen as a reason not to approach the book because from the book’s website you will have access to C# translations and I have also translated many of the examples to VB.NET (there are a few left out, such as MVC and one of the Proxy flavors, anyone can feel welcome to add them or join the project.) Also, although some are afraid to try, interpreting a language that you aren’t familiar with can be very beneficial.
I would recommend reading this book from cover to cover and attempting the examples in the language of your choice. Any trouble you have translating the examples will probably end up teaching you more about both Java and your desired language.
As a final note, this book is neither an end or a beginning. It assumes certain knowledge and also you might find that design patterns weren’t the right answer, or perhaps you were asking the wrong question at the time. As a recommendation, if you are looking at design patterns but aren’t sure about your understanding of OOA&D, you might check out the Head First book on that topic instead. If you’re looking to continue on to a higher level of pattern mayhem, I’d recommend moving to Fowler’s Patterns of Enterprise Application Architecture which will take the basic knowledge of patterns and fit it steadfast into real enterprise needs.
Okay so I lied. One last note: Patterns are not a replacement layered or tiered architecture. They can work together to create a more robust architecture. Think of it as different levels of abstraction that the patterns operate on.