Design Patterns : Elements of Reusable Object-Oriented Software
A must have reference book written by the GOF who are highly know in the litterature of programming. Begins with a quik presentation of each patterns in the book and then explain them one by one with exemples, when to use, UML representation and more.