Head First Design Patterns, O'Reilly


Jump to: navigation, search
  Title:  Head First Design Patterns
  Author(s):  Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates
  Edition:  O'Reilly Media (October 25, 2004)
  Format:  Paperback: 676 pages
  ISBN:  0596007124
  Overall Rating:  Image:stars5.gif The Bottom Line
C# Online.NET:Reviews: Book Reviews  •  Educ./Train. Reviews  •  Software Reviews  •  Top 10 Books

Contents


C# Online.NET Book Review

My first exposure to "design patterns" was the book Design Patterns: Elements of Reusable Object-Oriented Software by the Gang of Four—Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. It is considered by many to be a modern classic; yet, it left me cold and unenlightened. The writing quality is very poor; there are few examples; and, the book gives little guidance on proper usage of the patterns. In fact, I was unable to force myself even to finish reading it.

Then, I tried a few Java patterns books. Again, the books were tough going; but, they were intelligible. And, I managed to learn a few patterns. But, I had really given up on becoming fully conversant in patterns.

Now, there is a book for people like me—people who love programming, but hate academic style programming books. The book is Head First Design Patterns. My wife introduced me to the Head First series; and, at first, I thought they were childish: they seemed to me to be programming books that really were for dummies. But, my ongoing ignorance of patterns lead me to give it a try. Lo and behold, it suited me perfectly.

This is not a reference book; and, the series is not for everyone. The books are full of drawings, scribblings, factoids, jokes, and crude illustrations. The authors have tried to utilize the latest research on how people learn easiest and best—conversational style, exercises, pictures, variety. Their strength is they give you a place to start learning challenging subjects in an unstuffy, non-intimidating atmosphere. You will even enjoy reading them. So, if you, too, have had unsatisfactory forays into design patterns, you owe it to yourself to give this book a try.

The book covers all the basic GOF patterns and will give you a firm foundation for further reading. After reading it, you will not only be conversant; but, you will be using design patterns in your work.

All of the source code examples are in the Java language. The authors would like to think that C# programmers can also learn patterns from their book. And, to a large extent they can; but, be aware that some of the patterns are better implemented in a different manner when using the C# language.


Bottom line

Head First Design Patterns makes design patterns accessible and comprehensible and—at times—delightful.

Other books in this series

Publisher's description

If you've read a Head First book, you know what to expect--a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design paddle pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

About the author(s)

Eric Freeman is a computer scientist with a passion for media and software architectures and coauthor of Head First Design Patterns. He just wrapped up four years at a dream job-- directing internet broadband and wireless efforts at Disney--and is now back to writing, creating cool software, and hacking Java and Macs.

Eric spent a lot of the '90s working on alternatives to the desktop metaphor with David Gelernter (and they’re both still asking the question, "Why do I have to give a file a name?"). Based on this work, Eric landed a Ph.D. at Yale University in 1997. He also co-founded Mirror Worlds Technologies (now acquired) to create a commercial version of his thesis work, Lifestreams.

In a previous life, Eric built software for networks and supercomputers. You might know him from such books as JavaSpaces Principles Patterns and Practice. Eric has fond memories of implementing tuple-space systems on Thinking Machine CM-5s and creating some of the first internet information systems for NASA in the late 1980s.

When he’s not writing text or code you’ll find him spending more time tweaking than watching his home theater and trying to restore a circa 1980s Dragon’s Lair video game. He also wouldn’t mind moonlighting as an electronica DJ.

Write to him at eric at wickedlysmart dot com or visit him at http://www.ericfreeman.com/.

Elisabeth Freeman is an author and software developer. She is coauthor of O'Reilly's Head First Design Patterns and Head First HTML with CSS & XHTML.

Bert Bates is a 20-year software developer, a Java instructor, and a co-developer of Sun's upcoming EJB exam (Sun Certified Business Component Developer). His background features a long stint in artificial intelligence, with clients like the Weather Channel, A&E Network, Rockwell, and Timken.

Table of Contents (abbreviated)

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 Algorithms: theTemplate 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



Personal tools