Design Patterns in C#, Metsker. Non-fiction. Not merely non-fiction, but professional development, so even less interesting than the customary non-fiction reviews.
Metsker does a reasonable job with a relatively complicated topic. He uses a fireworks factory as the backdrop for all his code examples, which gave me mixed feelings. On the one hand, you need a fairly elaborate, fleshed-out structure to justify many of the design patterns; on the other, well, it sure was dull. Maybe any structure would have gotten dull after 300-odd pages of tutorial, examples, and exercises, and having to introduce a new structure for each chapter might have lenghthened the work unacceptably; but I can say with certainty that doing it this way bored me deeply.
That said, I at least have no quarrel with the relevance of Metsker’s examples to the patterns he was illustrating, and I salute his creativity in having constructed an all-purpose proving ground. I do take some issue with his redistribution of the patterns into categories that differ from those established in the canonical Design Patterns. I don’t completely hate it, though it makes his work somewhat less useful for folks who might be looking for a quick, superficial look.
As might be expected, this book is not a very effective C# tutorial, though a solid grounding in another object-oriented programming language will serve pretty well in the absence of C# experience (my only serious obstacle was over “delegates”, which are discussed without ever using the phrase “function pointers”, leaving me momentarily with the impression that they were something new but confusingly similar).
I have to agree. The “delegate” terminology–in Microsoft’s C# parlance–didn’t strike me as particularly intuitive when I first encountered it, and after I clued in I remember yelling in my head “why didn’t you just _say_ ‘type-safe function pointer’?!”