Joshua Kerievsky recently released a new book, Refactoring to Patterns, which combines the best of Martin Fowler's Refactoring and the classic Design Patterns by Erich Gamma, et. al.

Refactoring to Patterns picks up where Refactoring left off, showing how code can systematically be refactored to incorporate the well-known patterns popularized by Design Patterns. As such, these three books form a sort-of trilogy which may be studied together. Any software architect hardy enough to become well-versed in this trilogy will have mastered the core of object-oriented design.

The examples in the book are given in Java, a welcome change from the C++ and Smalltalk in Design Patterns. The diagrams are produced using UML. The format of the book very closely resembles Fowler's style in Refactoring. However, it is clear that Kerievsky picks up where Fowler left off, as Fowler makes clear in his introduction to this volume.

Credit goes to the publisher Addison Wesley, which is producing the Martin Fowler Signature Series of books, of which Refactoring to Patterns is the newest addition.