Design Patterns : Elements of Reusable Object-Oriented Software

 

Design Patterns is a seminal work that has brought about industry-wide improvements to the design of systems and changes to systems. The patterns described have been distilled out of the practices of experts. They allow less experienced designers to benefit from the tried and tested methods used to solve frequently experienced problems. The book also details where the patterns are intended to be used and where their weaknesses lie.

Personally, I found the book quite hard-going and would strongly recommend Head First Design Patterns if you are looking for an easier read. After reading Head First Design Patterns, I found Design Patterns to be an excellent resource for reference. I always keep a copy on my desk.

 

Head First Design Patterns

 

 Head First Design Patterns is an outstanding book on a subject that could be very dry. If you can get past (or even enjoy) the quirky style and sense of humour, it teaches a majority of the standard design patterns in a way that can be absorbed and remembered.

The code examples are in Java, but they are readable and explained in detail. I strongly recommend this book, especially to the design pattern novice.