Book Review #3: "Head First Design Patterns"

image For this review, I decided to target a technical book which I think should be on every software enthusiast bookshelf. Whether you’re a computer science or software engineering student, a software professional, manager, consultant or trainer, you will NOT regret reading Head First Design Patterns by Eric and Elisabeth Freeman, from O’Reilly. I think you can guess what this book is about (I admit it wasn’t a hard guess…), but you’re right! It’s a book about software patterns, and by far the book I mostly recommended on the subject. Using the Java programming language and UML diagrams, this book deals with all the original patterns from GoF and presents them with a unique sense of humour, simplicity and fun! It doesn’t matter if you’re a first time learner on the subject or if you’re an expert. Head First Design Patterns will surely teach you more than one thing about software patterns for sure.

What fascinates me the most about Head First Design Patterns is its style of writing, because the approach taken by the authors to present each patterns is simple and easy to grasp. For instance, each pattern is presented in an intelligent and smooth context via a little story. The story starts with a problem between some characters or a witty situation, such as a one-on-one interview with a pattern (seriously, have you ever heard a Singleton being interviewed? It’s awesome!) It then continues by providing different solutions (I do mean solutions in plural, as it tackles the problem domain using different solutions via the same pattern) and testing your knowledge on the pattern via questions and answers, crosswords related to the particular pattern, how the pattern relates to other patterns, tips and tricks, etc. image

The picture on the right side shows a sample of the unique style of the Head First series.  In this page, the authors are writing about a key object-oriented programming principle: Single Responsibility.  You can also read a limited preview version of this book on Google Book Search.

 

  

As written on the back cover, Head First Design Patterns will show you

  • The patterns that matter
  • When to use them, and why
  • How to apply them to your own designs, right now
  • When not to use them (how to avoid pattern fever)
  • OO design principles on which patterns are based

Erich Gamma and Richard Helm, coauthors of the original Design Patterns book, as well as Ward Cunningham, wrote praises for this book. It is smartly written, fun to read, challenges you at regular intervals, and makes you appreciate the fundamentals behind software patterns. I wish more technical books were written in the same style as this one. I highly recommend it, especially if you’re teaching software patterns to individuals.

The following is the Table of Contents for this book:

  1. Welcome to Design Patterns: an introduction
  2. Keeping your Objects in the know: the Observer Pattern
  3. Decorating Objects: the Decorator Pattern
  4. Baking with OO goodness: the Factory Pattern
  5. One of a Kind Objects: the Singleton Pattern
  6. Encapsulating Invocation: the Command Pattern
  7. Being Adaptive: the Adapter and Facade Patterns
  8. Encapsulating Algorithm: the Template Method Pattern
  9. Well-managed Collections: the Iterator and Composite Patterns
  10. The State of Things: the State Pattern
  11. Controlling Object Access: the Proxy Pattern
  12. Patterns of Patterns: Compound Patterns
  13. Patterns in the Real World: Better Living with Patterns
  14. Appendix: Leftover Patterns

The Strategy pattern is described in chapter 1, whereas the Model-View-Controller pattern is described in chapter 12.

The Appendix covers the following patterns:

If you have the original Design Patterns book by Erich Gamma et al., Head First Design Patterns will be a great complement to fill in the gaps you might have on some software patterns.

This post has been viewed: 769 times. kick it on DotNetKicks.com

 

Similar posts you might be interested in reading:

Leave a comment

Powered by WP Hashcash