15 of 17 people found the following review helpful
A great read for Java developers looking to improve their design skills,
This review is from: Design Patterns in Java(TM) (Software Patterns Series) (Hardcover)
I've heard a lot about the classic "Gang of Four" Design Patterns book. However, while I've read many papers based on it, I've never actually read The Book. So, when I had a chance to read the new Design Patterns in Java(TM) (2nd Edition) it seemed like a perfect chance to load up on some must-know information as it is applied to my programming language of choice. Excellent!
This book merges and updates the Design Patterns Java Workbook and Design Patterns C#. Design Patterns in Java is targeted at developers who know Java and want to improve their skills as designers. It covers the same 23 patterns discussed in the Gang of Four Design Patterns book.
Patterns are powerful things. As the Metsker and Wake put it, "Patterns are distillations of accumulated wisdom that provide a standard jargon, naming the concepts that experienced practitioners apply." Exactly! They authors have a way with words. I really appreciated the one sentence descriptions of each pattern at the beginning of each chapter. These helped me to immediately grasp the intention of each pattern before digging in to the details. The periodic "challenges" throughout the text are thought provoking and worth the effort to work through.
The advantage of this Java-centered book over a general patterns book is that it helps you understand how Java's unique features can be used to implement the patterns. For example, sorting can be implemented using polymorphism and the template method pattern. The original GoF book is a classic. Design Patterns in Java is, for the Java developer, the perfect combination of the GoF book's concepts with concrete Java implementations to make it all easier use. Not only are there Java examples but the book also includes information to help you refactor your existing code to use patterns. Very helpful.
The appendices include solutions to the various code challenges, information to access the sample site's source code, and a crash-course in UML.
I love the suggestion at the end of Appendix A: "Decide how many hours a week you want to spend on your career. Take five hours off the top and pay yourself first. Spend that time away from the office, reading books and magazines or writing software related to any topic that interests you." Great concept!
If you're a Java developer looking to invest some time to improve your design skills, this would a great place to start.