Rating:  Summary: Classical book on the subject, but not good for beginners Review: I recommend Shalloway's "Design Patterns Explained" as an introductory book, after that you can read the introduction of the gang of four book, learn the intents of all 23 patterns and use the rest of the book as a reference.
Rating:  Summary: Eye-opening, and still applies Review: This book helps those less-experienced with OO design to see the true power of OOD, most notably polymorphism and decoupling. I thought I understood before, but I now have a much better understanding of the usefulness of interfaces and upcasting, and why composition is often a better solution than implementation inheritance. I chose to read this book while I was learning Java. For me, it worked well to read one pattern per day and try to get the most out of it. Reading several patterns back to back will likely get exhausting for most. The presentation of the book is very conceptual and academic. Even ten pages of reading may fill your head for a while. So be warned that you will not likely knock this one out in a couple sittings! This book also provides the reader an education on the importance of patterns in general. Although the current world of web services and stateless objects will deemphasize the usefulness of some of these "classic" patterns, the IDEAS layed out in this book (interfaces, layers of indirection, etc.) will hopefully help all of us discover next generation of patterns. My only wish is that they would come out with a new edition of this book that: a) Documents code in Java (those not knowing C++/Smalltalk may struggle) b) Chooses less technical examples (e.g., a pattern demonstrated on a payroll application instead of a compiler subsystem) c) Updates to the current version of UML (although the current modeled documentation is not bad) d) Provides new patterns that help people with wireless, Internet, web services, stateless objects, etc. e) Changes the tone to be a little less academic (this is really just a nitpick) All in all, this was a very useful book and was worth the brain strain it required to read and grasp it's concepts. It has aged well despite being written prior to the WWW becoming a household word.
Rating:  Summary: Articulates class relationships -- a seminal book. Review: I had to read through this book a few times to get the full measure of what's going on. I learned later that the GoF book, as it's known, arrived at a time when articulate information on generalized object-oriented design wasn't widely available. Design Patterns touts itself as a catalog of time-tested formulae for creating simple, powerful class relationships. That's really being a bit modest. It's become the de facto methodology for documenting new, more complex patterns for several OO periodicals I've covered. It's also being used in academia to teach the design aspects of writing maintainable and reusable code. As something to read straight through, however, add some caffieine to this book to make it. The prose favors a dry and technical style which, in my view, it didn't need. The examples were obscure for me, too. I couldn't relate to issues around coding a word processor, but I suppose it's still better than contrived or "Hello World" code. I don't think any book deserves five stars for being the first of its kind; if you're filling a gaping hole, people are going to buy it because it's necessary. If it's also very good, well then score one for advancing civilization! This book is still The Book in its field, however, and well-written. You need a copy.
Rating:  Summary: It's time for it to go! Review: A Great Book for that Slice of Time! Design Patterns, in my opinion, is and has been the best book of its kind. I "grew up" on the discipline that it suggested, the spirit that it presented and the strategies that it preached for... What else can you ask from a great book? I have to admit that it caught me by surprise... Actually, most developers in my generation admitted that reinventing the wheel rather than utilizing re-usable components or remembering patterns, was a very silly thing to do... But for now, it's time for it to go! Not disappear, but just let the next generation settle down, move beyond the old Pattern concept to the next new thing. The above may surprise you. I've been thinking that we need to move beyond what was popular in the 90th and look ahead into the future. And here are my thoughts: 1. Design Patterns is a product that had it roots in the early 90th. At that time, Client Server was popular and e-business was born. It does not reflect the new conceptual thinking of the emerging and advanced technologies. In today's technology and business environments it'd be hard to apply most of the patterns that are found in the book. We have moved beyond these old concepts. The new technology requires more demanding solutions to a more complex world such as Wireless, Distributed Objects, Web Services (UDDI, SOAP...), etc. 2. I believe that Design Patterns is a product of the conceptual thinking of a few great man that came up with some solutions to some problems in that slice of time in history. I don't have a doubt in my mind that most of the credits go to Grady Booch. Booch's methodology was folded into UML along with others in early 1998. His publications in 1990 affected many of us and paved the way to where we are today. 3. The Design Patterns book is modeled and tailored to solve problems in the C++ language domain. It was the Object Oriented language of choice at that time. True, we may be able to apply these patterns to other languages such as Java (Java came out in late 1994). They even believed that Patterns would be good for ADA, Simula and SmallTalk as well... My main concern is not so much with the language as with the environment. I believe that today's Patterns should deal with environmental, business, infrastructure and conceptual issues that we're facing today. Singleton and Fasad Patterns are our great old buddies, but how about solving problems in the Web Services arena? EJB? Etc. 4. The next generation Patterns will not be called Patterns any more. I believe that these people that were trying to apply patterns to a moving target, found that they were right only for a short period of time in history...
Rating:  Summary: The "Bible" of Design Patterns Review: Of course, it's the best book, it's the "Bible". I saw someone gives "Design Patterns Explained" only one star; I also saw someone gives this book only one star. Is this book not good? No. You dislike this book only because that you made a wrong selection: as a beginner, you should read DPE at first. However, it's Chinese version is too bad... I'd rather to read it's original version, though I'm a Chinese.
Rating:  Summary: If you plan to write more than 1,000 lines of code Review: ... this book can save up to 90% of your efforts. No matter which tools or languages you use, you will get a profit from patterns. This book was a discovery for me. This is a way to another world, world of rational design. World where I can not invent a wheel every time. Now I use patterns in C++, Basic, and SQL. The strength of the book is that it is not narrow-minded, and is not specific to particular programming language or tool. You should have it on your desk as a refference - I have. I vote for five stars for it.
Rating:  Summary: Very bad writing Review: The topic is great. But it is extremly hard to figure out what the authors are trying to tell. It is just like I am reading some randomly generated sentences. The reason, I guess, might be the authors themselve didn't understand those patterns.
Rating:  Summary: Good, but too complex Review: The ideas presented in the book are great, but the writing is too complex. The book could be re-written with simpler and far fewer words. More examples are needed. I use some of the design patterns frequently, yet when I read the book, the descriptions are extremely dificult to understand. I usually have more experienced Java programmers explain the patterns to me. All of them say the book does not explain the concepts in the best manner.
Rating:  Summary: You've written a million lines of code, Now... do it better! Review: ... After years of writing code of all kinds, Fun Video games as a kid, Compilers for the heck of it, Graphics programs for the love of art, Interesting AI programs because I am a CS guy, Boring Database Applications because I have to pay bills, Nifty n-tiered web apps because the World went crazy.., I found a programming book that could still teach me something. After books from Knuth, Djikstra, The Aho Gang and the like, here is a book which goes straight to the point. The book summarizes a basic set of Software Design Patterns, which have been found over and over in all the software we create. Design Patterns is the perfect answer to all you OOP questions, Its an approach to sofware design as well as reuse. If you are an artist, you would appreciate Design patterns better. The masters of the Renaissance began to see the world in terms of basic geometric forms..Spheres, Cubes, Cones and cylinders..this helped them in analysing an object..(any object, from the Human body to the Mountains and rivers.). Once they analysed any thing into its basic forms it was just a matter of detail. So, if you practice how to draw these basic shapes from different angles, and lighting,etc., and you learn how to analyse any thing into basic shapes, you have become a master. The authors categorize all different software pieces into Creational, Structural and Behavioural patterns. Providing several possible patterns in each of these categories. A software designer, when confronted with a design problem, based on the needs, can pick a pattern from this catalogue and then fill in the details. Well written, with UML diagrams too. Caution: If you are new to programming, come back to this book a bit later.
Rating:  Summary: Get this book even if you are a Java Architect Review: As far as I am aware this is the only book available on the application of design patterns specifically for Object design and is useful for Java architects as well as for its intended audience, C++ programmers. If you are having difficulty with this book then getting yourself a copy of Christoper Alexander's "A Pattern Language" is a good place to start looking at the concept of patterns and their application to Architectural models in the physical world. While many software designers and webdevelopers rave about "A Pattern Language" the worlds first book on Design "Permaculture a Designers manual" by Bill Mollison is even more universal in scope than "A Pattern Language". This is due to the fact that "Permaculture a Designers Manual" draws its design methods directly from observation of how natural systems work and from that, building integrated systems based on the concepts of Physics, Ecology, Hydrology etctera. The concept of Permaculture is the inspiration behind the concept of the worlds most innovative science thinktank "The Santa Fe institute", permaculture as a concept predates the "The Santa Fe institute" concept by over a decade. The chapters in "Permaculture a Designers manual" that cover, "concepts and themes of design", "methods of design" and a "pattern understanding" are worth their weight in gold. One design principle that stands out is the concept of one principle in particular which states that each single element of a design must perform at least two, but preferably more functions. Such designs based on this principle alone can give your object, site or application an extremely huge bang for you buck. If you are a designer and you wish to learn the "triggers" that facilitate good design then there are three books that you must have, "Design Patterns", "A Pattern Language" and "Permaculture a Designers Manual". Whether you are new to design or a professional in this field get these three books, read, "Permaculture a Designers Manual" first to get an overview of how to design models that are universal (ie; adaptable from one discipline to another, for example the principle of edge effects in ecology, used to build objects that foster community growth in a specific Online portal). read "A Pattern Language" second to get an overview of the psychological principles behind Architecture that makes sense to the user and enables them instead of disempowering them (For example the navigational structure for finding the subjects of this book gives an example on how to build a navigation structure for websites or software that makes it easy for the user to navigate to the exact subject that the user wants in just one click) After you have read these two books then read "Design Patterns" to find out how to design objects well and use it also as inspiration for designing Java Architecture. Read these books in the following order and you will have what many programmers beleive is the best selfpaced tutorial on design that you could possibly get. Unfortunatly at present there is no course that has these three all time design classics as the basis of its curriculum, only those who are aware of what the best designers use as their reference material, buy these books, as a result many lecturers are doing thier students a huge disservice. Newsflash; "Permaculture, a designers manual" is no longer for sale on Yahoo as of September of 2001, this book can only be obtained over the web through its publishers "Tagari.com.au".
|