Review: Head Fist Design Patterns

Head Fist Design Patterns

How to avoid reinventing the wheel

Reviewed by Major Keary

A title in O'Reilly's Head First series, Head First Design Patterns, may mislead some bookshelf browsers—the human kind—into thinking it is about graphic design. Indeed, some search engines might also be confused. The term, pattern, has a quite different meaning in object-oriented programming, which is best explained in another text, Object-Oriented Reeingineering Patterns [Demeyer et al., 2003, Morgan and Kaufmann]:

"A pattern is a recurring motif, an event or structure that occurs over and over again. Design patterns are generic solutions to recurring design problems. It is because these design problems are never exactly alike, but only very similar, that the solutions are not pieces of software, but documents that communicate practice."


Literature about pattern design, or that discusses it, has been around for a decade, but is confined to high-end texts and papers in
professional journals. Head Fist Design Patterns introduces the subject to Java programmers. As long as you know Java or C#—no need to be a guru—and "want to learn, understand, remember, and apply design patterns", this is the best introductory text available. The authors approach the subject on the assumption that the reader is a learner and go to great lengths to explain concepts and methods; there is no assumption that the reader 'ought to know that'.

The head first style has been carefully crafted, making use of graphics, 'hand-written' annotations, and innovative variations in type faces. Such a combination is likely to be anathema to authors and publishers of formal texts, but here it works. There's not much chance of falling asleep while reading a head first book.

One of the features that impresses is that information is repeated. In most texts the policy is that something, once stated, is assumed to be
retained by the reader; a practice that can be quite frustrating, not to mention time-wasting. In this book some of the concepts are
explained more than once in order to assist learning.

There are plenty of source code examples, frequently annotated, but somewhat distilled on the assumption that the reader is familiar with
Java. The style is tutorial, but greatly enhanced by the book's engaging design. A larger than normal page size provides plenty of space that adds to readability.

Eric Freeman and Elizabeth Freeman: Head First Design Patterns
ISBN 0-506-00712-4
Published by O'Reilly, 638 pp., RRP $79.95 incl. GST