Shop Viral Tech Essentials
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows.
Buy New
-79% $14.84
FREE delivery Thursday, September 3 on orders shipped by Amazon over $35
Ships from: Amazon
Sold by: EBIKELING
$14.84 with 79 percent savings
List Price: $69.99
Get Fast, Free Shipping with Amazon Prime
FREE delivery Thursday, September 3 on orders shipped by Amazon over $35
Or fastest delivery Tuesday, September 1
$$14.84 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$14.84
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon
Amazon
Ships from
Amazon
Returns
FREE 30-day refund/replacement
FREE 30-day refund/replacement
Quick refund
Usually issued within 24 hours. See exceptions
FREE return
At least one free return option available.
Convenient dropoff
At any of our 50,000 US locations.
See return policy
Gift options
Available at checkout
Available at checkout This item is a gift. Change
At checkout, you can add a custom message, a gift receipt for easy returns and have the item gift-wrapped
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.28
Get Fast, Free Shipping with Amazon Prime FREE Returns
Light wear on cover and/or pages. No major flaws, but may have minor markings or creases. Overall, a well-maintained book. Light wear on cover and/or pages. No major flaws, but may have minor markings or creases. Overall, a well-maintained book. See less
FREE delivery Tuesday, September 1 on orders shipped by Amazon over $35
Or Prime members get FREE delivery Tomorrow, August 28. Join Prime
Only 1 left in stock - order soon.
$$14.84 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$14.84
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.
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

Get new release updates & improved recommendations
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,969)

{"desktop_buybox_group_1":[{"displayPrice":"$14.84","priceAmount":14.84,"currencySymbol":"$","integerValue":"14","decimalSeparator":".","fractionalValue":"84","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"bnaYYZDaxFVNy12Yi0tUfEZwyimJHfcmp%2FE7Xl8VeZC%2FZ7cLZ6%2FbMpneojA8k7F0PdAakfLNN719iRomFBgCM7%2Fz86Cc89auY02yL4WoVhirY2gXzuTukigLSTeGzvNFpWp%2B7F08jqiZCYUrC6cMNh1syZe%2FAUHH0sWBMJ2v2sOKWwVuR0tf07Jl24R0k34Q","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$7.28","priceAmount":7.28,"currencySymbol":"$","integerValue":"7","decimalSeparator":".","fractionalValue":"28","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"bnaYYZDaxFVNy12Yi0tUfEZwyimJHfcmNrQ3g1h28WsnEw6qBlw8xWZQ7H1a%2FJKG34RhVNKmflfdEOZZcSlKlRPtlWtWi%2B4koeoNFawY0IZjJKjsGUFsEzlEdjVyW9yWc%2B9DgzfGGzKTxqh21DfWGhlHJhWxpBBzOBv1F4Hk6qv4dpm9G%2FQiQrdfalXZ7loD","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.

Read poolside to seaside.Shop kindle Paperwhite. pantry

Frequently bought together

This item: Head First Design Patterns: A Brain-Friendly Guide
$14.84
Get it as soon as Thursday, Sep 3
Sold by EBIKELING and ships from Amazon Fulfillment.
+
$24.35
Get it as soon as Tuesday, Sep 1
In Stock
Ships from and sold by Amazon.com.
+
$32.01
Get it as soon as Tuesday, Sep 1
In Stock
Ships from and sold by Amazon.com.
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: #287,857 in Books (See Top 100 in Books)
  • Customer Reviews:
    4.6 out of 5 stars (1,969)

About the authors

Follow authors to get new release updates, plus improved recommendations.

Customer reviews

4.6 out of 5 stars
1,969 global ratings

Customers say

Customers find this design patterns book highly informative and easy to understand, with hands-on examples that are accessible through code. They appreciate its comprehensive approach, including annotated code examples and diagrams, and its playful writing style that helps with comprehension and retention. Customers disagree on whether the book keeps them engaged throughout.
AI Generated from the text of customer reviews

Select to learn more

310 customers mention content, 283 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
141 customers mention readability, 120 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
61 customers mention examples, 51 positive, 10 negative
Customers appreciate the book's examples, which are well-presented 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
    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.
  • 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.
  • 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.
  • 4 out of 5 stars
    Give it a chance!
    Reviewed in the United States on May 23, 2014
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I am a professional IT trainer and have read dozens of technical books on software, languages and best practices over the years and, for me, I tend to prefer the ones that cut to the chase and don't waste pages on irrelevant or tangential information. Also, when most authors try to inject humor into a technical book, it reminds us why these people don't get paid to tell jokes for a living.

    The Head First series takes a different approach to presenting its content. It's almost written like a junior high school text, with crossword puzzles and other brain teasers to help solidify the content just presented. But, the reviews on this book were very good, so I decided to give it a shot and after I put my "just the facts" desires aside, I found that the book doesn't disappoint.

    Design patterns are generally hard for people to assimilate. Many patterns share common traits and it can be confusing to try to understand when a particular pattern would be beneficial. This book does a great job at teaching patterns, but what it really does well is teach Design Principles in tandem with the patterns. This is the way to learn this stuff. Learn the principles and why they are beneficial and then it becomes easy to learn why a particular pattern is used as a way to implement the principles.

    Yes, there is humor (some actually humorous) and the presentation is intentionally sophomoric, but I found that presented this way, it keeps your interest in what is normally the most boring of all IT topics.

    Well done!

    2 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 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.
  • 5 out of 5 stars
    This is possibly the greatest "technical" book i've read.
    Reviewed in the United States on April 28, 2005
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Simply put, this book is amazing. Now, I've gone through my fair share of tech books on various subjects and not once has a book grabbed my attention quite like this one has.

    This book is a very fun and easy read, yet I have never absorbed so much information from any other tech book like I did with this one. It takes learning back to the old-school. It's almost like getting in touch with your inner-child. I was reminded of how learning was back in elementary school. It sounds bad, but really it's the best way to grasp such a complex subject. The pages are riddled with elementary school-esque drawings and humor is peppered throughout this book so heavily that you can't help but turn to the next page and keep on reading.

    Now, don't you think that this book is a complete breeze. Yes, it is an easy read, but you will still have to study this book to really absorb the information. There are some practice exercises that can seem a bit daunting at times, but once you do figure it out you will get the "I am THE man! (or woman)" feeling. You will get a rush of understanding that only the best books can provide.

    The design of this book truly is genius. I wish there were more books like this out there. I have never learned so much - so easily. I give this book my highest recommendation EVER! yes... EVER!

    3 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    pretty good book
    Reviewed in the United States on January 13, 2008
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I bought this book because I got into the wave of designing software using UML designing tools.

    As a beginner I found it useful but now looking back this won't save you from countless hours of breaking your head how to joggle with the design to fit in the requirements. And the childish design it actually helps. The books looks fluffy and this lets you see the skeleton of ideas from behind.

    When talking about requirements I speak about memory footprint, speed of execution, flexibility, extensibility and so on.

    I think this book will help you understand why the solution that you found by yourself actually work and improve the ones that you already have.

    If you think that you'll become a good designer reading this, you are in for a big surprise.

    As with most of things good guidance and a lot of work helps materialize a good theory.

    Take the book and make a few designs. In the first designs don't think about any requirements just design to become able to spot the most obvious design mistakes.

    Than go back and impose harder design requirements like how you can tweak it to become faster or consume less memory while still analyzing the design from the book perspective. After a few designs you'll definitely become a better designer.

    Another book that helped me was Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series). This one is very practical and will help you understand that design patterns are dust in the eyes some times when memory and speed requirements are very tight.

    This is my advice from my own experience. If it helps than I guess it is a good advice.

    One person found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 3 out of 5 stars
    Toy problems are misleading
    Reviewed in the United States on March 1, 2013
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Plenty of people have commented about the teaching style, and I do not have much to add in that regard. I bought this book as an adjunct to the GoF book, and it serves nicely for me. To put this in context, my favorite chapter in GoF is the second chapter, where they provide the design for an hypothetical editor. Learning and remembering is easier for me when it is tied to something concrete. Like many others, I could do with about 1/2 as much material, but it is easy enough to start skimming when they repeat themselves.

    Where I feel this book seriously goes astray is in the problems they choose to use. For reasons I don't understand, they choose to illustrate several design patterns for a problem domain they should not be applied to.

    For example, they illustrate the decorator pattern by designing a solution for calculating the prices for a coffee shop. They start out well, showing a naive explosion of classes (HouseBlendWithWhipAndSoy, DecafWithSteamedMilk, and so on), which is clearly a bad approach. Yet, they still implement a number of classes - 4 different classes for each beverage type, and then a decorator for every additive you might want (mocha, soy, milk, whip, etc). This is clearly silly; can you imagine telling a company that every time they want to add a new drink or drink additive you have to modify code?

    In the very next chapter we are introduced to the Factory pattern. Before long we are once again writing specialized classes to deal with composition: You have the Pizza class, then the ClamPizza class, a CheezePizza class, a VeggiePizza, and so on. You deal with that with composition (covered in the very first chapter!), not types. What is particularly distressing about this example is that they rightly showed what a maintenance nightmare it would be to have to write a NYStyleCheesePizza, ChicagoStyleCheezePizza, and so on. Again, imagine telling a restaurant owner that every time he wants to introduce a new pizza on the menu that you need to write code and deliver a new application to him. Madness.

    I anticipate a retort that these are toy problems meant to illustrate the idea. But we use decorator patterns all of the time in the real world, on real problems. Why not use one of those problems in the book? Again, I recall chapter 2 of GoF; their example problem (a text editor) is very real world, very understandable, and yet is no more complicated than the toy problems in this book. This form of OO, where inheritance and types are used as the main tool in the toolbox is what we see out of junior programmers every day, and it just makes for unmaintainable code.

    I do like the exposition style, but loathe (some of) the examples. I guess that averages out to 3 stars? I dunno. I would not hand this book to a junior programmer for fear of them being led astray. I would hand it to an intermediate programmer whose skills I know with strong caveats about the quality of the examples.

    class VeggiePizza. Really!

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

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.
    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.
    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.
    Translated from Spanish by Amazon
    See original
  • 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.
    Translated from Japanese by Amazon
    See original
  • 5 out of 5 stars
    Muito bom
    Reviewed in Brazil on August 9, 2018
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Excelente livro, boa didática e já utiliza o Java 8

    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Portuguese by Amazon
    See original