I picked up Head First Design Patterns by Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra while working through some particularly difficult design/code reviews. In these reviews, I found that very few developers actually knowingly use design patterns beyond the most simplistic of forms. In fact, during several interviews, I asked candidates what design patterns they could name and most could not name a single one. However, when I asked them if they had heard of the Singleton Pattern, they immediately began giving examples of writing code to meet this pattern. With this discovery, I quickly began recommending this book to java developers of all levels as a way to renew why we design code the way we do.
Head First Design Patterns quickly gives the reader exposure to some of the most common patterns and why they work. Does this book cover every possible pattern and the intricacies in its use? No. However, it brings to the reader a mode of thought that begins to look at design patterns as a way to solve common problems without “reinventing the wheel.” The examples are relatively simple to understand and the writing style straightforward and logic in its flow.
I recommend Head First Design Patterns to any entry through advanced level developer or designer in the object-oriented world that desires to find a solution to common problems in a way that allows your design/code reviewer and maintainers the ability to understand why the design/code was “done” the way that is was “done” in a less-than-four-hour line-by-line review meeting.