Refurbished favorites for less
Buy New
-77% $15.87
FREE delivery October 14 - 16
Ships from: EBIKELING
Sold by: EBIKELING
$15.87 with 77 percent savings
List Price: $69.99
FREE delivery October 14 - 16. Details
Or fastest delivery Thursday, October 15. Details
Only 1 left in stock - order soon.
$$15.87 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$15.87
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Shipper / Seller
Returns
30-day refund/replacement
30-day refund/replacement
Quick refund
Usually issued within 24 hours. See exceptions
Shipping fee
May apply, not eligible for free return. See details
Convenient dropoff
At any of our 50,000 US locations.
See return policy
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$7.45
Book is in very good condition and may include minimal underlining highlighting. The book can also include "From the library of" labels. May not contain miscellaneous items toys, dvds, etc. . We offer 100% money back guarantee and 24 7 customer service. Book is in very good condition and may include minimal underlining highlighting. The book can also include "From the library of" labels. May not contain miscellaneous items toys, dvds, etc. . We offer 100% money back guarantee and 24 7 customer service. See less
FREE delivery October 19 - 22. Details
Only 1 left in stock - order soon.
$$15.87 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$15.87
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Ships from and sold by Zoom Books Company.
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

  • Head First Design Patterns: A Brain-Friendly Guide

Follow the authors

Follow authors for new release and deal updates, plus improved recommendations. See updates from all followed authors in Your Books.
See all
Something went wrong. Please try your request again later.

Head First Design Patterns: A Brain-Friendly Guide

4.6 out of 5 stars (1,938)

{"desktop_buybox_group_1":[{"displayPrice":"$15.87","priceAmount":15.87,"currencySymbol":"$","integerValue":"15","decimalSeparator":".","fractionalValue":"87","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"FHDJ46AvnS5dqMLsOBOpFLSZlWJMN66FWFmBZmJQfCode5cbeJUv7CwA9ZYBa1LZkSWSPuNpaiFuFxb9rvMbwbxx0DQNShnybXvJIiEtYwnp0pecPH4Mvr96IFa5oVZPe8AT%2BC0iGS94F5QtzoPMmjCRYOma182u5o3aKh%2FlY4CuhcIZASUCkj8riNkI70w%2B","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$7.45","priceAmount":7.45,"currencySymbol":"$","integerValue":"7","decimalSeparator":".","fractionalValue":"45","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"FHDJ46AvnS5dqMLsOBOpFLSZlWJMN66FAbya9%2F28Vtg%2BgZ3s%2BJPPgXw7Yj2j9UJAnrBY41GOlsa7k%2BVCCspxYZPg%2Bh6omSpGDav%2FvUEhNiMEgsDUHWVYy9cExitPRbRgTP34kdfRoTg2AnFWwfXn5V9JZTAtTFD1sJMVY7rDDb5So1hUtfHLtW4Gjd3czVso","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

What’s so special about design patterns?

At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns―now updated for Java 8―shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.

What’s so special about this book?

We think your time is too valuable to spend struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.

There is a newer edition of this item:

Frequently bought together

This item: Head First Design Patterns: A Brain-Friendly Guide
$15.87
Get it Oct 14 - 16
Only 1 left in stock - order soon.
Ships from and sold by EBIKELING.
+
$21.27
Get it as soon as Thursday, Oct 29
Sold by World✓Prime and ships from Amazon Fulfillment.
+
$29.31
Get it as soon as Monday, Oct 26
Sold by Brookshire Books and ships from Amazon Fulfillment.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy together.

Customers also bought or read

Loading...

Editorial Reviews

About the Author

Eric Freeman recently ended nearly a decade as a media company executive, having held the position of CTO of Disney Online & Disney.com at The Walt Disney Company. Eric is now devoting his time to WickedlySmart.com and lives with his wife and young daughter in Austin, TX. He holds a Ph.D. in Computer Science from Yale University.

Elisabeth Robson is co-founder of Wickedly Smart, an education company devoted to helping customers gain mastery in web technologies. She's co-author of four bestselling books, Head First Design Patterns, Head First HTML and CSS, Head First HTML5 Programming, and Head First JavaScript Programming.

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.

Kathy Sierra has been interested in learning theory since her days as a game developer (Virgin, MGM, Amblin'). More recently, she's been a master trainer for Sun Microsystems, teaching Sun's Java instructors how to teach the latest technologies to customers, and a lead developer of several Sun certification exams. Along with her partner Bert Bates, Kathy created the Head First series. She's also the original founder of the Software Development/Jolt Productivity Award-winning javaranch.com, the largest (and friendliest) all-volunteer Java community.

Product details

  • Publisher ‏ : ‎ O'Reilly Media
  • Publication date ‏ : ‎ October 1, 2004
  • Edition ‏ : ‎ First Edition
  • Language ‏ : ‎ English
  • Print length ‏ : ‎ 692 pages
  • ISBN-10 ‏ : ‎ 0596007124
  • ISBN-13 ‏ : ‎ 978-0596007126
  • Item Weight ‏ : ‎ 2.29 pounds
  • Dimensions ‏ : ‎ 8 x 1.4 x 9.25 inches
  • Part of series ‏ : ‎ Head First
  • Best Sellers Rank: #801,173 in Books (See Top 100 in Books)
  • Customer Reviews:
    4.6 out of 5 stars (1,938)

About the authors

Follow authors for new release and deal updates, plus improved recommendations. See updates from all followed authors in Your Books.

Customer reviews

4.6 out of 5 stars
1,938 global ratings

Customers say

Customers find this design patterns book highly informative and easy to understand, with hands-on examples that make complex concepts accessible. They appreciate its comprehensive approach, including annotated code examples and diagrams, and its well-written, playful style that helps with comprehension and retention. While many customers find the book engaging, some mention it can be distracting.
AI Generated from the text of customer reviews

Select to learn more

309 customers mention content, 282 positive, 27 negative
Customers find the content of the book excellent and highly recommend it, noting that it serves well as a reference guide.
Great book, I should have read it years ago. I like the design principles explanation and that is not merely a patterns catalog.Read more
This definitely is an excellent book. However, chapter 4 (Factory Pattern) could drive any sane person crazy....Read more
Good book. A little cute, but helpful.Read more
Excellent! One of the best books I have ever seen for learning new concepts. Very well written and makes it easy to understand the topic....Read more
140 customers mention readability, 119 positive, 21 negative
Customers find the book easy to understand, with hands-on examples that are accessible to anyone who can read code.
This book is very clear and easy to read. Highly recommend for those new to OO programming. A great place to start learning design patterns.Read more
...Great reference book, and easy to understand and retain information. This book will help a programmer transform into a software engineer....Read more
A clear and easy to understand presentation of design patterns in software development. Good job.Read more
...What this book DOES DO, is offer a SIMPLE, VERY EASY TO UNDERSTAND, VERY INFORMATIVE, AND ENTERTAINING way to LEARN the most useful design patterns....Read more
138 customers mention informative, 129 positive, 9 negative
Customers find the book informative and effective at teaching design patterns, with one customer noting it's particularly helpful for those who learn through examples.
...this book DOES DO, is offer a SIMPLE, VERY EASY TO UNDERSTAND, VERY INFORMATIVE, AND ENTERTAINING way to LEARN the most useful design patterns....Read more
I found this book very helpful and because of its innovative way of visuals and comparing/reviewing things as a conversation it kept me engaged....Read more
...That is why this book is useful. Also, please be aware that in this book source code, the instance variables are not declared private....Read more
...So it is a very useful book both for the student and the teacher. We need a translation in italian SOON! ;)...Read more
75 customers mention entertaining, 70 positive, 5 negative
Customers find the book entertaining, making learning a fun experience and keeping their interest throughout.
As with most Head-First books it allows you for a fun, yet comprehensive learning of the subject....Read more
...GoF which was a bit heavy for me... this is one simple, clear and fun to read. Really enjoying it now :)Read more
...The examples are "crystal" clear and entertaining at the same time....Read more
It can be your first pattern book. And it is a interesting book that helps you keep reading!...Read more
60 customers mention examples, 50 positive, 10 negative
Customers appreciate the book's examples, which are comprehensive and serve as a great reference, with one customer noting that it explains complex subjects in just 10 pages.
I learned the content well, good examples and sequencing, but found this to be a tiring read because of way all information is dressed up to be...Read more
...PROS: Great writing, great summaries, and great examples, with code, that don't go too far into the weeds....Read more
...There is a good use of humor, pictures, abstract analogies, and concrete examples to help convey the lessons of each chapter and while this is like...Read more
...It's a lot of fun, and chock full of great information and examples that you'll be able to apply to your own projects right away.Read more
45 customers mention comprehensive, 38 positive, 7 negative
Customers find the book comprehensive, with clear explanations and examples that are made as simple as possible, including annotated code examples.
Excellent overview and explanations of the most well-known design patterns....Read more
Clear explanations. Helps to get a grip on the subject without being too complicated....Read more
I love this book. I think, it's better than Gang Of Four. The diagrams, the conversations, brain power, crosswords, all of them help you understand...Read more
...first chapter, but it was enough to see its an amazing book that explains well and is fun and easy to read....Read more
29 customers mention writing style, 27 positive, 2 negative
Customers appreciate the writing style of the book, describing it as well-written and playful, with one customer noting that the text is example-driven and designed for maximum comprehension and retention.
Well written, and very easy to follow. Both a good introduction and a good reference book for anyone interested in design patterns.Read more
...It's very well written, verging on entertaining. The end result is a clear understanding of what each design pattern is and how it can be used....Read more
...So in addition to being a well written book I believe I'm also just very ready for this topic....Read more
...It is written well and is a great choice!Read more
28 customers mention engaging, 19 positive, 9 negative
Customers have mixed reactions to the book's engagement level, with some finding it brilliantly engaging and helping them keep reading, while others find it distracting.
...I highly recommmend this book to anyone interested in learning the design patterns.Read more
...it really helps you and keeps you focus while you're going through it....Read more
...Seriously, this book gives me a headache....Read more
...This book really hits it on the head though, and I'm very glad I bought it....Read more
All images are squashed on the Kindle edition, affecting readability - get paper version instead
3 out of 5 stars
All images are squashed on the Kindle edition, affecting readability - get paper version instead
This is strictly a comment for the Kindle edition. I find the formatting of the pictures unreadable, and that this has a very negative impact on the usability of the book. IThe images, which are core to the text, are centered at 50% width of the page. This requires me to manually zoom in each time I want to see something clearly, a process which I find rather cumbersome to say the least. I've tested this both on a (high resolution) Samsung Galaxy S2 Tablet (Android Kindle; see screenshots) as well as my old Kindle DXG. Forget about seeing them on the OG Paperwhite. This issue is not unique to this book, however I do wish the authors would take the time to ensure their content is readable on the Kindle editions.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • 5 out of 5 stars
    Excellent book, not just for Java developers!
    Reviewed in the United States on March 2, 2012
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I purchased this book about a year ago and devoted a number of hours each week going through it. I am a software developer by trade, but never took a computer science course in my life, mostly because I was self-taught as a kid and all of this pre-dated the Web by about 20 years.

    In any event, one area where I knew I was lacking was a formal understanding of design patterns. I was in the middle of a fairly large enterprise application, and while I was fully versed in Object Oriented Programming (and had even taught it in the past), I realized that everyone we were hiring out of college "spoke" a different language than I did, talking about singletons, factories, MVC, etc.

    This book covers those and many, many more, in a completely involving and revolutionary way. It's basically designed with the Java language in mind, but I'm a .Net developer, never having learned Java. However, the book is so thorough and intuitive, that I decided to do all of the examples in C# (close enough to Java that in many cases, there's almost a 1-to-1 relationship between my home-grown example and the one in the book.

    So for me, the book's benefit was two-fold: exposure to both design patterns and the Java language. In many cases, I was able to ".Net-ify" the examples to take advantage of specific features of .Net. A good example was in the Observer pattern where you have an object that changes over time, and other objects ("observers") need to be aware of this change. The book presents a language-agnostic approach, where the observable object registers all of its observers, and cycles through them notifying each one that it has changed. With .Net, it's much easier (and more appropriate) to implement this using events, where the observable object doesn't care who's watching, it just announces "I've changed!" and each observer can then decide how to handle that event.

    But I digress... ultimately, I just threw myself into this book, doing every example as written, and then modifying those examples to function with the .Net mentality. I even did all the pencil exercises, puzzles, etc. It's all part of the learning process, right?

    So, in a nutshell, if you need to learn design patterns, get this book. It's a lot of fun, and chock full of great information and examples that you'll be able to apply to your own projects right away.

    18 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Successfully engages the reader
    Reviewed in the United States on April 2, 2005
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Since design patterns are about ways of organizing code in order to make it easier to understand and to manage, it should not be all that strange that the authors are also intersted in how to organize a book along the same principles.

    Still I was a bit skeptical. This is the first book that I have seen in the Head First series. I have seen other books with cute graphics and came away disappointed because I felt I was being talked down to or because I thought the authors were not very knowledgeable.

    I am happy to report that my fears were not realized. As the authors make clear in the introduction, they put a lot of work into making this book accessible. They succeeded immensely. It is also clear that they know whereof they speak with regard to the material covered. I have had trouble getting through the dry material on design patterns in other books. This book was a real eye opener. I higly recommend it to others who are having trouble understanding patterns. I can now see what all the fuss has been about and why it is so important for programmers to understand this material.

    One criticism that I have is the code presented for the composite design pattern. If you read through it, it will be clear that it is too verbose and it will not work. To rectify this problem I give here in its entirety my version of the MoveNext method for a composite design pattern class, which I successfully tested on my computer.

    Public Function MoveNext() As Boolean Implements IEnumerator.MoveNext

    Dim iterator As IEnumerator

    While True

    ' Try to get next item from iterator at top of stack

    While Not CType(stck.Peek, IEnumerator).MoveNext

    stck.Pop() ' Remove empty iterator from top of stack

    If stck.Count = 0 Then ' No more iterators

    Return False

    End If

    End While

    iterator = stck.Peek

    currentItem = iterator.Current

    'If current item is a list then push its iterator onto stack

    If enumType.IsInstanceOfType(currentItem) Then ' Next item is a list

    stck.Push(CType(currentItem, IEnumerable).GetEnumerator())

    Else ' Current item is not a list

    Return True

    End If

    End While ' while True

    End Function

    Along with this book I would recommend reading the Wikipedia article on design patterns at [...]

    They give a good compact description of the main patterns.

    4 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Highly Recommended !!!
    Reviewed in the United States on December 9, 2011
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This book aims to teach us how to reuse design patterns that have been used over and over again. While this book does not cover all patterns in detail, it covers the patterns that are commonly used according to the authors' mind. In overall, this is the book you want to buy as a starting point to learn design patterns.

    To begin with, before reading this book, you have to know about Java programming language along with the object-oriented features such as encapsulation, inheritance, and polymorphism. Bear in mind that by having solid object-oriented knowledge does not make you a good object-oriented designer. I thought the opposite until I read this book. For those who do not know the language and/or the object oriented feature, they should study them first before attempting to read this book.

    When reading this book, please note that the primary intention of this book is to teach you about design patterns. Therefore, if you find the examples are not what you expected (too simple, childish, imaginary, and so on), you need to know that the examples are made as simple as possible so you can concentrate on learning design patterns. Unfortunately, some people just do not understand this approach. They probably want examples that have hundreds line of code to explain each patterns and I am very sure if this was the case, they would give bad review anyway by arguing that the examples are too complex.

    The only negative thing is the fact that not all 23 patterns are covered. I wish all of them were covered in a single book and even if the price were twice as much I would certainly buy it. I do not know why the authors did so. They covered only around 13 and cramp the others in 20 pages in the appendix.

    In my personal experience, after reading this book, it changed my paradigm toward object-oriented design and made me ask myself, "Why I didn't buy this book earlier?" Had I bought it earlier, my campus projects would have gone easier. In addition, ever since I read this book, I often think about the pattern(s) that can be applied in the other programming books' code example, especially when the examples have too many if and if else statements as they could be refactored using state pattern or command pattern. The reason some programming books do not bother with design patterns (even though the authors probably know about it) is because not their focus in their books. That is why this book is useful. Also, please be aware that in this book source code, the instance variables are not declared private. In reality you have to make it private according to the principle of the least privilege.

    Finally, I highly recommend this book to anyone who already knows Java and its object-oriented features as it helps you to learn commonly used patterns and to design better using best design principles (open closed principle, encapsulate what varies, etc).

    One person found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 4 out of 5 stars
    Very good book on patterns but examples leave questions
    Reviewed in the United States on July 17, 2008
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This is an excellent introductory book on patterns. They start out with the assumption that the reader does not really know what design patterns are or what they are good for. Developers who have been around awhile know about patterns, but overall I think their assumption is not a bad one: I think many of us have some ideas about patterns, and think we know some patterns, but don't really understand them. The book shines in its presentation of the patterns, even the ones we already "know," as extrapolations of basic OO design principles. The authors deserve very high marks for that.

    They also have a lot of quirky, fun stuff in the book. It is, as another reviewer mentioned, almost insufferably cute. It's for the geek like me who wants to pretend we're not geeks, wink wink. Actually, I don't have any trouble with the humor, especially because sometimes it serves the valuable didactic purpose of helping one remember the points.

    The negative points I have about the book are not primarily that the examples are simple; my main gripe is that the examples sometimes made things more confusing than they were before. For example, they spend an excellent first chapter discussing basic OO principles like "Favor Composition over Inheritance" and show how the Strategy pattern embodies them, and show a truly awful design in chapter 2 for Starbuzz Coffee (haha!) neglecting those principles, with a resulting explosion of classes. Very well.

    But then, in chapter 4, they demonstrate the Factory pattern by eschewing composition in favor of inheritance, and creating an explosion of classes with all the varieties of pizza styles. Huh? Why are we suddenly dropping the principles that we've spent so much time on? Why not use composition with dependency injection as done in the "SimplePizzaFactory" example? Why not have a Pizza class that favors composition over inheritance? Now, there may in fact be good reasons, but they never discuss them. We're left wondering what's going on.

    One more example: in discussing the Decorator pattern, they give what seems to me to be one of the worst uses of that pattern imaginable. "Condiments" are not "Beverages", and having a Beverage that chains to other Beverages seems very non-intuitive. Not at all a good example of "IS-A" relationships. Again, it's an illustration of the pattern, but a very jarring one that breaks reading continuity.

    So, buy the book, read the book, "get" the patterns; but when you think some of the examples don't make sense, you're not alone.

    3 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Great for Beginners and Valuable for Non-Beginners
    Reviewed in the United States on March 11, 2015
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Head First Design Patterns is an excellent introductory text for design patterns, plus object oriented design in general. Each chapter in the main part of the book covers one or two of the most common design patterns in great depth, including motivation, sample code, exercises, as well as answering many of the questions a reader is likely to have. Additionally, one of the things that makes the book great is that each chapter uses the context of the design pattern to introduce one or two important object oriented design principles such as the Open-Closed Principle and the Principle of Least Knowledge. Less common patterns are covered in the appendix, although in much less depth.

    I bought this book for my 17-year-old nephew -- who is in the second year of a high school computer programming course -- as a companion to the Gang of Four book. I think the two books work well together, with Head First Design Patterns working as a more accessible introduction to design patterns, and the Gang of Four book serving as a reference for later on. He definitely finds the Head First book easier to read as a beginner. Even I, with a college degree in Computer Science and 20 years in the software development industry, find it valuable, at least as a review.

    For those wondering about which edition they will get, I bought this book through Amazon and received the tenth anniversary edition, updated for Java 8. The main difference is that it takes advantage of the newly-introduced Lambda Expressions. Although the book uses Java throughout, C# developers will have little if any trouble with the examples. In many cases, the code is identical.

    Slight nitpick: Some of the patterns in the appendix are given short shrift in the interest of space. For example, the section on the Visitor Pattern leaves out the important fact that one of the main motivations for the pattern is to overcome the limitations of languages that support only single dispatch. Said another way, the Visitor Pattern is trivial to implement in languages that support multiple dispatch. For more detail on these design patterns, I recommend the Gang of Four book, or online resources.

    5 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Formalizes and Deepens Knowledge of Patterns
    Reviewed in the United States on July 9, 2009
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I've been writing object-oriented programs for the last 20 years, and have used many of the patterns listed in this book during that interval. Some of these were picked up through exposure to frameworks that employed them, some from books, and some just re-invented because they made sense for my particular application.

    This book collects all of these patterns in one place, including some that I haven't used, and then explores and explains them from a variety of perspectives.

    The book is a collaboration between technical experts and experts in learning theory. The result is that motivation for learning the material is thoroughly integrated into the formal content. Rather than just describing the "what" of a pattern, the book starts by dialoguing with the reader about the "why," so that by the time it gets into the "how" in more depth the reader is interested enough to explore all of the nuances of the various approaches to applying the technique. It attempts to anticipate objections the reader might raise regarding the importance of a given pattern, while at the same time throwing light upon the pattern by showing how it addresses real needs.

    The presentation and examples are superior to most other books that I've read. There's a fair amount of repetition, but from different perspectives, so that at least one of the facets presented should resonate with the needs and experiences of the reader. In its presentation of the decorator pattern, for instance, the first example was a concocted coffee cost computation program that left me feeling that a critical aspect of that pattern, the building of more specialized functionality by wrapping more basic and fungible functionality, had not been adequately explored. But they followed up immediately with a real-world example from the java.io package that not only explored that aspect of Decorator, but also referenced code that I had already personally encountered and understood.

    Another praiseworthy aspect of this book is the way in which it integrates general design principles like programming to an interface (rather than to an implementation) with more specific patterns like the Strategy pattern. This gives the reader a lower level base to fall back upon if a specific pattern cannot be found, or if an existing pattern needs to be specialized for a particular purpose.

    This book arrived while I was designing a new application, and upon scanning through the various patterns for additional places within my application where patterns could be applied, I found a couple right away.

    All in all, this book represents a raising of the bar for content, presentation and pedagogy in a technical manual.

    3 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    VERY GOOD BOOK
    Reviewed in the United States on October 4, 2011
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I was kind of uneasy buying this book, I have NEVER bought a head first book...I've seen them at some of the larger book retailers and I've thumbed through them and quickly dismissed them as a gimmick and "for kids" due to all the illustrations and goofy quotes...I feel very sorry about that now, I have a TRUE FEELING that I would have a much deeper understanding of C++, Java, and PHP if all of Head First's books are written as well as this one...this book DOES make lots of use of "out of the ordinary" techniques when it comes to a software development book. It DOES NOT give detailed "cook book" code samples, and it DOES NOT promise to teach you EVERYTHING there is to know about Design Patterns. I wouldn't even say it gives you MANY "REAL WORlD" examples, nothing that you code in this book is OVERLY COMPLEX. What this book DOES DO, is offer a SIMPLE, VERY EASY TO UNDERSTAND, VERY INFORMATIVE, AND ENTERTAINING way to LEARN the most useful design patterns. This book is everything I wanted and more, it is not a Book's job to teach me how to be creative, or how to implement their exact code into my client's software...it does do EXACTLY what it should and presents the information in an EASY to grasp way without wasting your time. I would BUY THIS BOOK NOW.

    WARNING: If you don't have a strong OO background before getting this book you may be making a mistake, the authors do an OK job trying to explain OO principles but if you don't understand some of the more common terms (or haven't looked at them in quite a while) it really helps to brush up prior to reading this book. I HIGHLY recrommend Object-Oriented Thought Process by Matt Weisfeld as an introduction or refresher, it is a FANTASTIC read on OO.

    7 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 3 out of 5 stars
    Too verbose
    Reviewed in the United States on June 9, 2006
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This might be a good college text book on the subject since you have a whole semester to complete the book. But for professionals and busy people, this is way too verbose. Imagine an experienced carpenter who bought a well-hyped replacement tool for a hammer. He would open the `how to' manual of that tool to quickly learn how to use it. But the manual is flooded with things like "why you don't want to use the hammer anymore", "the physics and mathematics behind the replacement tool", "analogy of the replacement tool and a crocodile", "why the earth is round", "why am I stupid to buy this tool", so much that the carpenter just can't use the tool right away. In other words, I agree with the 1-star reviewers. But I still give a 3-star because this is better than the "for dummies" book on the same subject. (I noticed that negative reviews of this book got lots of `not-useful' votes. So I expect this review to also have lots of those. Ultimately, the buyers are the one to decide.)

    The book says you may still use the book even if you do not know java but knows c#. I disagree. Many java implementations of the gang of four patterns are different from the corresponding c# implementation as far as optimization goal is concerned. For example, take the popular singleton pattern. You may use a similar java approach for c# but the optimum way to implement it in c# is different (see Microsoft's Enterprise Solution Patterns using Microsoft .Net, to see how to implement singleton in c#). Also take the observer pattern. In c#, it is a simple subscription to an event by a client object from the publishing object.

    If you are new on the subject, shop for a more concise book. True, repetition helps you learn, but talking about books, isn't it that you can always re-read the portion you do not understand?

    Additionally, shop for similar books that have examples in the language you are using.

    34 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

Top reviews from other countries

    Translated by Amazon
    See original
  • 5 out of 5 stars
    Ti cambia la vita
    Reviewed in Italy on July 10, 2021
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Se state cercando un libro che vi introduce al mondo dei Design Patterns questa è la scelta perfetta; nonostante sia stato scritto quasi 20 anni fa rimane una guida indispensabile.

    Si fa sentire l'età per quel che riguarda il codice JAVA presente, anche se sul sito di riferimento c'è una versione parzialmente aggiornata.

    Ma lo stile è davvero impagabile: ogni pattern è presentato in maniera colloquiale con esempi semplici e concreti, che fanno capire subito le potenzialità e i difetti di ogni soluzione.

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

    Translated from Italian by Amazon
    See original
  • 5 out of 5 stars
    Eine Alternative zu trockenen Pattern-Katalogen
    Reviewed in Germany on April 14, 2011
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Da ich mich hauptsächlich mit Embedded-Entwicklung in prozeduralen Sprachen befasse, war mir das Thema Design-Patterns bisher relativ unbekannt. Im Web findet man einiges zu diesem Thema, allerdings meist sehr trocken und in Form von Pattern-Katalogen ohne konkreten Praxisbezug. Meist wird lediglich ein Beispiel in diversen Programmiersprachen umgesetzt und fertig. Über die Hintergründe, die zur Entwicklung eines Patterns geführt haben, findet man meist eher wenig Informationen.

    Nach einigem Stöbern bei Amazon fand ich dieses Buch, und ich muss sagen, dass sich die Anschaffung voll und ganz gelohnt hat. Keine sture Auflistung möglichst vieler Patterns, stattdessen eine didaktisch eigenwillig, aber äußerst effektiv gestaltete Reise in die fiktive Stadt Objectville, deren Bewohner mit allzu bekannten Problemen bei der Software-Entwicklung zu kämpfen haben. Jedes Kapitel widmet sich einem Pattern, wobei eine sinnvolle Auswahl aus den GoF-Patterns getroffen wurde. Beginnend mit einer Problemstellung werden die Patterns Schritt für Schritt erarbeitet, wobei auch Irrwege gezeigt und erläutert werden. Zwischendurch sorgen kleine Aufgaben für eine Festigung des Gelernten.

    Der Schreibstil ist locker, das Layout gezielt ungewöhnlich, um das Gehirn zur Mitarbeit anzuregen statt mit ewigen Textmengen zu langweilen. Für mich geht dieses Konzept auf, man kann das Buch regelrecht verschlingen, und trotzdem bleibt der Stoff "hängen". Zweiflern empfehle ich "Pragmatisches Denken und Lernen" von Andy Hunt, das einige Einblicke in die Hintergründe solcher Lehrmethoden bringt.

    Gute Englischkenntnisse sollten natürlich vorhanden sein, was allerdings bei der angesprochenen Zielgruppe heutzutage wohl ohnehin unerlässlich sein dürfte.

    Nachtrag: Meine Java-Kenntnisse würde ich maximal als "grundlegend" bezeichnen. Trotzdem hatte ich keine Probleme mit dem Verständnis der erarbeiteten Code-Beispiele, da es in diesem Buch nicht um das Ausreizen aller Sprachfeinheiten von Java geht, sondern eben um Software-Design und Struktur.

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

    Translated from German by Amazon
    See original
  • 5 out of 5 stars
    El mejor libro que he adquirido en mi vida
    Reviewed in Mexico on November 22, 2016
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Es un libro que todo desarrollador debería leer, vale mucho y es una joya. Son claros y concisos al momento de explicar los temas además siempre mencionan las variantes de los patrones y en muchos casos muestran como lo hace Java y si existe alguna falta en la manera en que java ha implementado ciertos patrones de diseño.

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

    Translated from Spanish by Amazon
    See original
  • 5 out of 5 stars
    Read this as your first book for Software Design Patterns.
    Reviewed in the United Kingdom on December 2, 2014
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This is a must have book for any beginner or mid level software engineer. This book makes complex topic of design pattern very easy. 10 on 10 for this book for innovative way of story telling and pictorial depiction of design pattern. Once read and understood, Second and third readings are very easy to read and revise. I recommend this book highly if you are preparing for job interviews. Although JAVA is used in all the code examples these patterns are equally applicable to all mainstream programming languages, such as C++, C# etc.

    If you are serious design patterns, I would still recommend reading this book before you jump on to GoF book. This gives you a head start and very good milage in all the important design patterns before you dive in to more detailed GoF patterns.

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    買った方が良い
    Reviewed in Japan on February 2, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    とてもしっかりしてる良本

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

    Translated from Japanese by Amazon
    See original