I always believed OO design patterns to be necessary to know and understand by all software developers, I didn’t like the fact that sometimes design was forced into a known design pattern just because a pattern existed (and wrote about it). After seen patterns abused time after time I lost faith and I was frustrated by the fact that the simplified examples of the design patterns didn’t seem to solve the problems I’ve tried to solve.
After a co-worker recommended Head First Design Patterns I read it – and became a true believer.
The book teaches several well known (and well used) design patterns by using easy to understand use cases in a way I found both easy to understand and remember. The book is co-authored by kathy sierra (the creator of the Creating Passionate Users blog) that has a very good understanding of the human mind and how we learn and her touch is felt throughout the book.
Each chapter teaches a new design pattern by first telling a story of a problem and walks the reader through the solution as the “customers” changer requirements or ask for additional functionality for the proposed solution until a pattern emerges.
Each chapter has a summery page of the new pattern learnt and of the new object oriented design principles learnt at that chapter.
One of the things that I liked about the book is that it doesn’t try to teach all of the design patterns that were introduced by the gang of four. In fact the book’s authors write that one of their objectives was to create a book that weight less then the reader.
Although I read a few books and tutorials on the subject I never found one that explained the who and why of design patterns in such clarity. Even chapters about design patterns I already known thought me someting.
So if you what to learn (or improve you understanding of) design pattern you can’t go wrong with this book.