Let me start with a disclaimer. I've read several articles on Design Patterns, but this is my first book on the topic. I was planning on reading the book from cover to cover, before reviewing it. But after trudging through a couple of chapters, I didn't think the review should wait.
My first impression was positive: the table of contents is very impressive. All (or at least most) of the Group of Four's Design Patterns are covered in this book, in addition to some variants and new patterns named by this book's authors - Grand and Merrill - in their previous publications.
Each section of the book contains a synopsis of the pattern, a real world example, a UML diagram, benefits and costs of using the pattern, and a code example. The structure was brilliantly conceived, but dissapointingly executed. It would have been great if the real world example tied in to the code example, but we're given no such cohesiveness. Often a single pattern's paragraphs seem so disjointed, its hard to figure out whether they're all describing the same pattern (and sometimes they're not). The code example (which unfortunately appears at the very end of each chapter) is so thin it's hard to see the pattern playing out. Its common for these examples to contain a class with a single member variable, a get property for the variable, and an ellipsis.
The authors come off as very knowledgable, but do a poor job of communicating their thoughts without using lots of jargon. Their loaded keywords often go unexplained - which makes the authors sound impressive, but does nothing to teach the uninitiated reader. The book is also cluttered with typos and sentences without verbs (or with too many). This annoyance not only distracts from the main topic, it sometimes makes it difficult or even impossible to guess at the actual meaning of the sentence.
This book is not accessable for someone with litle to no knowledge of Design Patterns. I don't know who the target audience would be.
Perhaps someday I'll pick this book up again and be able to gleam some useful nuggets of information from it. Or perhaps, I'll end up taking it off my bookshelf to make room for more useful books. For the time being, I'm going to use it to keep other books from falling over.