I thoroughly enjoy Rob Daigneau’s Design Patterns for .NET. It is well laid out and clear (Not to mention it looks great with super large fonts so I can read it from a comfy chair!)

The following quote makes me smile. It is a very well made point to illustrate the role of design patterns; it just makes me smile as I read it in the accent of Captain Barbosa of Pirates of the Caribbean.

Design patterns do not provide specific and concrete recipes that should be followed each and every time. Instead, they identify elements, how they work together (i.e. collaborate), and the relationships that exist between each element in the design solution. When it comes to object-oriented software design, the elements addressed in the patterns are typically described as classes. The solutions suggested by a given pattern should be thought of as guidelines rather than rules.