I've seen multiple people mention the GoF's Design Patterns book. This is well known and worth several reads through; it will take multiple passes to grok all of it.
There are several other books that have tried to explain the GoF's Design Patterns in either an easier to approach manner, or in the context of a specific language they have tried to explain where new design patterns have emerged or the original patterns had mutated.
There are several other books that have tried to explain the GoF's Design Patterns in either an easier to approach manner, or in the context of a specific language they have tried to explain where new design patterns have emerged or the original patterns had mutated.
A couple of those worth checking out are
"Head First Design Patterns"
http://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/...
"Design Patterns In Ruby"
http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/032...
"Learning JavaScript Design Patterns"
http://www.amazon.com/Learning-JavaScript-Design-Patterns-Os...