Rating:  Summary: May be helpful Review: The help this offers is for students who haven't learned a lot of languages yet. For them, the effort of picking Java sense out of C++ or Smalltalk may defeat the rest of the pattern discussion. For them, Java code samples and references to familiar Java library elements can make all the difference.For the rest of us, this book has decidedly mixed value. The real problem is that Grand seems to equate the terms "desgin pattern" and "good idea". Design patterns are good ideas, at least in the right context, but not all good ideas are design patterns. For example, delegation of responsibility is a good idea. It's the basis of any system decomposition. I have trouble justifying that as a design pattern - you may as well say that passing function parameters is a design pattern. It's just too broad. At the other end of the spectrum, Grand points to "marker" interfaces, Java interfaces with identities but not content, as a design pattern. Again, this is a useful but language-dependent hack. Ada or C# would have done the same things with attributes, and C++ could have done the same using marker fields or values in the class. Language tricks aren't patterns. Still, many of Grand's patterns are good ideas. The "Object Pool", for example, is a common and useful pattern. It's closely related to two GoF patterns. It's like a Singleton, except there's more than one of them. It's like a Flyweight, except the units aren't distinguishable or shareable. One real annoyance is the tendency of this Volume I to refer to necessary information in Volume II. If the author is going to create independently saleable units of book, they should be independently readable. I do not appreciate the implicit plug for the author's other work. I use this book, but mostly for its bad examples. Think hard about whether this is the way to spend your budget for DP books.
Rating:  Summary: Disappointing Review: The first time I read this book was to look up the Decorator Pattern. I went directly into the chapter and was highly disappointed by the numerous mismatches of class names found in the examples. My head was spinning after reading the chapter and gave up the whole book altogether. (I dont want to take the risk of writing another list of printing errors found in each chapter I read. I am a reader not their proofreader!!!) For example, the text refers to a name 'DoorController' but the diagram (Fig 7.28) only has 'DoorControllerIF', 'DoorControllerWrapperA', and 'DoorControllerWrapperB'. What the hell does it refer to? In Fig 7.30, the interface has 2 methods - 'Operation1()' and 'Operation2()', but all subclasses of it use the names 'Operation()' and 'Operation2()', instead. Does it mean 'Operator1()' and 'Operation()' are 2 different methods? The source code in P280 uses the type name 'SurveillanceMonitorIF' but there is no such a type ever found in the text - the closest match is 'surveillanceIF' only!!!!! This *could* be a great book provided that the author/publisher pay SERIOUS attention to the importance of consistent naming.
Rating:  Summary: Helpful for learning Review: If you are a hands on Java programmer and want the design patterns explained as you can understand them in code, this book is worth it. I notice other reviewers slate this book, picking up on what they consider to be "errors". Well, ultimately GOF4 is always going to be the authority on patterns but GOF4 is very dry - this book gives a practical java code explanation of the patterns. I often browse through it looking for ideas.
Rating:  Summary: Only the Best Review: I pity the individual whom selected this book as their first exposure to Design Patterns. A total abuse to the Java programming language or any language. After reviewing Mark's explanation of the Composite and State Patterns, they were far from "Grand". Illustrations are incorrect or incomplete; I am not sure which. The coding examples do not reinforce reusability and are incorrectly implemented. USING CASE LOGIC FOR THE STATE PATTERN! I nearly lost my lunch. On your next camping trip, take this book with you; it will make a great firelog. NOW THAT'S REUSABILITY!!
|