Drawing from his extensive experience as a programmer and teacher, Cay Horstmann helps students appreciate the value of object-oriented design principles, and gives them a context for applying these principles and techniques in their own designs. Throughout the text, outstanding pedagogy, carefully developed exercises and examples, and a strong emphasis on problem solving make object-oriented design principles accessible to readers with limited programming experience.
A good overview of different patterns in the context of object oriented programming. It starts out with some basic programming knowledge but quickly moves on to the subjects at hand. It has a good pace and manages to make abstract concepts easy to understand by providing concrete examples.
The Good - Covers the most important patterns and concepts - Companion code to show concepts mentioned - Exercises are easy to understand and follow
The Bad - Code sections can be hard to read visually - Sometimes too much focus on examples and their code
Conclusion A good book for getting a better understanding of design patterns. It comes with plenty concrete implementations and exercises to internalize the knowledge. It can be a bit hard to read because of all the printed source code, but overall a worthwhile book.
Some important patterns are not present. Anyway a good book on the argument and helps to understand how the design patterns are used on the Java Core Standard Library.