Buy New
-77%
$15.87$15.87
FREE delivery October 14 - 16
Ships from: EBIKELING Sold by: EBIKELING
Used - Very Good
$7.45$7.45
FREE delivery October 19 - 22
Ships from: Zoom Books Company Sold by: Zoom Books Company
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.
Follow the authors
OK
Head First Design Patterns: A Brain-Friendly Guide
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.
- ISBN-100596007124
- ISBN-13978-0596007126
- EditionFirst Edition
- PublisherO'Reilly Media
- Publication dateOctober 1, 2004
- LanguageEnglish
- Dimensions8 x 1.4 x 9.25 inches
- Print length692 pages
There is a newer edition of this item:
$30.68
(1,433)
Only 20 left in stock (more on the way).
Frequently bought together

Customers who viewed this item also viewed
- Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software 2nd EditionPaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Monday, Oct 12Only 20 left in stock (more on the way).
- Design Patterns: Elements of Reusable Object-Oriented SoftwareHardcoverGet it as soon as Thursday, Oct 29
- A Philosophy of Software Design, 2nd EditionPaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Monday, Oct 12
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable SystemsPaperbackFREE Shipping by AmazonGet it as soon as Monday, Oct 12
- Head First Object-Oriented Analysis and DesignPaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Monday, Oct 12Only 2 left in stock (more on the way).
- Head First Software Architecture: A Learner's Guide to Architectural ThinkingPaperbackFREE Shipping by AmazonGet it as soon as Monday, Oct 12
Customers also bought or read
- Design Patterns: Elements of Reusable Object-Oriented Software
Hardcover$21.27$21.27Delivery Oct 29 - Nov 5 - The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)
Hardcover$45.97$45.97FREE delivery Mon, Oct 12 - Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Paperback$30.29$30.29Delivery Mon, Oct 12 - Grokking Algorithms, Second Edition: An illustrated guide for programmers and other curious people
Paperback$38.11$38.11FREE delivery Oct 27 - Nov 3 - Domain-Driven Design: Tackling Complexity in the Heart of Software
Hardcover$51.75$51.75FREE delivery Mon, Oct 12 - A Philosophy of Software Design, 2nd Edition#1 Best SellerSoftware Testing
Paperback$22.04$22.04Delivery Mon, Oct 12 - Cracking the Coding Interview: 189 Programming Questions and Solutions#1 Best SellerData Structure and Algorithms
Paperback$25.79$25.79Delivery Mon, Oct 12 - C Programming Language, 2nd Edition#1 Best SellerC Programming Language
Paperback$60.30$60.30FREE delivery Mon, Oct 12 - Fundamentals of Software Architecture: A Modern Engineering Approach#1 Best SellerComputer Programming Logic
Paperback$52.40$52.40FREE delivery Mon, Oct 12 - Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition
Paperback$24.20$24.20Delivery Thu, Oct 15 - A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills
Paperback$40.00$40.00FREE delivery Mon, Oct 12 - AI Engineering: Building Applications with Foundation Models#1 Best SellerEnterprise Applications
Paperback$52.40$52.40FREE delivery Mon, Oct 12 - Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)
Paperback$25.08$25.08Delivery Mon, Oct 12 - Operating Systems: Three Easy Pieces#1 Best SellerComputer Operating Systems Theory
Paperback$28.27$28.27Delivery Mon, Oct 12 - Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations#1 Best SellerBusiness Operations Research
Paperback$11.17$11.17Delivery Mon, Oct 12 - Fluent Python: Clear, Concise, and Effective Programming
Paperback$42.98$42.98FREE delivery Oct 25 - 28 - Head First JavaScript Programming: A Learner's Guide to Modern JavaScript
Paperback$49.64$49.64FREE delivery Mon, Oct 12 - The Algorithm Design Manual (Texts in Computer Science)
Hardcover$48.64$48.64FREE delivery Mon, Oct 12 - C++ in Embedded Systems: A practical transition from C to modern C++
Paperback$28.49$28.49Delivery Mon, Oct 12 - Beyond Cracking the Coding Interview: Pass Tough Coding Interviews, Get Noticed, and Negotiate Successfully (Cracking the Interview & Career)
Paperback$41.89$41.89FREE delivery Mon, Oct 12
Editorial Reviews
About the Author
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)
- #127 in Java Programming
- #128 in Object-Oriented Software Design
- #200 in Object-Oriented Design
- Customer Reviews:
About the authors

Eric is described by Head First series co-creator Kathy Sierra as “one of those rare individuals fluent in the language, practice, and culture of multiple domains from hipster hacker, corporate VP, engineer, think tank.” Professionally, Eric recently ended nearly a decade as a media company executive—having held the position of CTO of Disney Online at The Walt Disney Company. Eric is now devoting his time to WickedlySmart, a startup he co-created with Elisabeth Robson.
By training, Eric is a computer scientist, having studied with industry luminary David Gelernter during his Ph.D. work at Yale University. His dissertation is credited as the seminal work in alternatives to the desktop metaphor, and also as the first implementation of activity streams, a concept he and Dr. Gelernter developed.
In his spare time, Eric is deeply involved with music; you’ll find Eric’s latest project, a collaboration with ambient music pioneer Steve Roach, available on the iPhone app store under the name Immersion Station.
Eric lives with his wife and young daughter on Bainbridge Island. His daughter is a frequent vistor to Eric’s studio, where she loves to turn the knobs of his synths and audio effects. Eric’s also passionate about kids education and nutrition, and looking for ways to improve them.

Elisabeth Robson is currently co-founder of Wickedly Smart (wickedlysmart.com) where she is creating new brain-friendly learning products.

Kathy Sierra created the award-winning Head First programming book series that has sold over 1 million copies, and includes the longest-running tech bestsellers of the past decade. Her background is in developing education games and software for the motion picture industry, and she also created the first interaction design courses for UCLA Entertainment Studies. For more than 15 years she’s been helping large companies, small start-ups, non-profits, and educators rethink their approach to user experience, and build sustainable, genuine loyalty.

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Generated from the text of customer reviewsSelect to learn more
Reviews with images
All images are squashed on the Kindle edition, affecting readability - get paper version instead
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, 2012I 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 5 out of 5 stars
Successfully engages the reader
Reviewed in the United States on April 2, 2005Since 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 5 out of 5 stars
Highly Recommended !!!
Reviewed in the United States on December 9, 2011This 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 4 out of 5 stars
Very good book on patterns but examples leave questions
Reviewed in the United States on July 17, 2008This 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 5 out of 5 stars
Great for Beginners and Valuable for Non-Beginners
Reviewed in the United States on March 11, 2015Head 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 5 out of 5 stars
Formalizes and Deepens Knowledge of Patterns
Reviewed in the United States on July 9, 2009I'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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 5 out of 5 stars
VERY GOOD BOOK
Reviewed in the United States on October 4, 2011I 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport - 3 out of 5 stars
Too verbose
Reviewed in the United States on June 9, 2006This 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 helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport
Top reviews from other countries
Nola5 out of 5 starsTi cambia la vita
Reviewed in Italy on July 10, 2021Se 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.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport
EinKunde5 out of 5 starsEine Alternative zu trockenen Pattern-Katalogen
Reviewed in Germany on April 14, 2011Da 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.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport
Daniel5 out of 5 starsEl mejor libro que he adquirido en mi vida
Reviewed in Mexico on November 22, 2016Es 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.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport
MAV5 out of 5 starsRead this as your first book for Software Design Patterns.
Reviewed in the United Kingdom on December 2, 2014This 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.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport
ともとも5 out of 5 stars買った方が良い
Reviewed in Japan on February 2, 2025とてもしっかりしてる良本
Sending feedback...Thanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try againWe'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.
CancelReport




















