The best book I have reviewed so far
This is a very good book indeed! Almost eight years after the appearance of the now classic book Design Patterns, another book explains the same twenty-three design patterns. During those years, the general understanding of design patterns has tremendously increased. However, it is still the question how much an average Java developer understands from design patterns and if he is capable of applying them when writing software and discussing with other developers. My guess is that most developers are still struggling with recognising, understanding and correctly applying design patterns. For these developers this book will be a very good aid on this subject.
The design patterns are regrouped in five groups, according to their intent; interfaces, responsibility, construction, operation and extension. Of course, for some patterns, their classification could be debated, but this is even encouraged. Remarks and questions encourage a better understanding of the intent and purpose of each pattern. The author discusses when simple features of the Java language could suffice to meet a requirement, or when it would be a better idea to re-factor code using a design pattern. The design patterns are not explained abstractly, but a concrete example is given based on a fireworks factory. The intentions of each design pattern are clearly stated.
A very useful feature of this book is that exercises appear throughout the text. This encourages a careful studying of the text. If you just casually read the text, you will not be able to answer all the questions. Some questions seem simple, but this may also be to not discourage newcomers. The questions break down into three categories; questions to formulate a response and reflect on what you have read, questions to complete or draw small diagrams and questions to complete or write small parts of Java code. If you are not a java developer, you could still benefit from this book, but you should at least have a minimal understanding of the Java language. I can recommend this book, it is the best book I have reviewed so far, taking into account the importance of this subject for developers.










