Head First Design Patterns

Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy sierra (2004)
Review date: June, 2009

This book spends many pages discussing its patterns. An average chapter is 30-40 pages, and covers one design pattern. After one introductory chapter on design patterns in general, come ten chapters where the most frequently patterns are described, along with examples, review questions, exercises, and other quirks that are typical to Head First books.

Chapter 12 is about combining patterns and contains an introduction to MVC. Chapter 13 is a summary chapter where some final advice is given, while chapter 14 contains descriptions of nine additional patterns. These descriptions are too brief to be usable.

Altogheter, the following design patterns are discussed in detail: Observer, Decorator, Factory, Singleton, Command, Facade, Template Method, Iterator, Composite, State, Proxy, and MVC.


To be honest, I really speed-read this book; couldn't simply put up with the lengthy explanations. This is the second Head First book I read, and my experience differs vastly from the first. When reading that (Head First Servlets & JSP), I found the style amusing and non-intrusive. (For those who don't know what "style" refers to: pictures of people, dialogs of non-obvious relevance, mixed fonts and layout, exercises; things that are supposed to enhance your ability to absorb the material). In this book, this was not the case. Most usages of patterns were over exemplified, and the reinforcing sections tedious. Before I got to the class diagram, the core of the pattern, I was far too bored by the introduction and artistic examples.

As for another comparison: The servlet & JSP book is only slightly bigger and covers most of the Servlet specification and enough JSTL to make you feel comfortable. This book covers a dozen design patterns...

The lengthy style naturally affects the number of patterns covered. A dozen is over-covered, while the ones mentioned in the last chapter aren't sufficiently covered to be of use. If you haven't heard about them, this book will not help you!

Of course, there are some good things in the book as well. For example, the coverage of the rather boring proxy pattern is rather nuanced, and even contains some material about dynamic proxies. The same chapter also holds a small RMI tutorial, which is good to get readers unfamiliar with RMI started.

In the first chapters of the book, the authors lay some ground by introducing basic design principles. Lengthy, like everything else in this book, but good for completeness and for readers new to OO. On the same topic, one of the last chapters emphasizes that design patterns should be used with care and that good design principles should guide the design, not the intention to cram as many patterns in as possible. This is repeated over and over, and I consider it a very important message.

All-in-all, I only recommend this book to those who like the Head First style, and that are 100% new to design patterns. Others are better of reading the original GoF book.

Who should read this book

Those who put up with the style of Head First books and know nothing about design patterns should read this book.


  • 2015-09-29

    It's been almost one and a half year since I reviwed a book! I've been too absorbed by Writing my own. Anyway, I'm back with Jeff Patton's relatively...
  • 2014-01-04

    New category! Performance! Reviewed The Every Computer Performance Book. Check it out!
  • 2013-09-10

    Reviewed a book that' slightly less technical, but much more fun to read. It's I.T. Confidential.
  • 2013-08-13

    Reviewed yet another book on Visual Studio 2012 and TFS. I also created a "Microsoft" category and moved the other TFS book there from the "Tools"...
  • 2013-08-05

    Updated the FAQ. Included information about getting a book reviewed.