Late to the Design Patterns Show

Design patterns are great. It gives you a pool of known solutions to common object-oriented software problems. Then you'll need to apply some creativity to tweak the patterns to fit your situation. There are close to two dozen design patterns and going through them all at once will overwhelm you. I can't even say I fully understand all of them but I think what you should first understand is these 23 patterns are grouped into three:

  • Creational patterns are means for generating instances of a class.
  • Structural patterns are for designing relationships between classes.
  • Behavioral patterns are for, well, behaviors.

Check out this of non-software examples for design patterns to help you understand better using real world analogies to demonstrate usage of the patterns. And here's a 2-page cheat sheet of commonly used design patterns when you need a quick reference.

If you need a refresher, this awesome YouTube playlist of design patterns tutorials is a pretty good start.

So what's your favorite reference material for object-oriented programming and design patterns?