| Average Rating: |
|
| Sales Rank: | 748764 (lower is better) |
| Price Used: | $10.70 |
| Shipping: | Free Shipping on most orders over $25* |
| Availability: | Usually ships in 24 hours |
| Label: | Wiley |
| UPC: | 723812227297 |
| Pages: | 544 |
| Binding: | Paperback |
| Publication Date: | 2002-09-17 |
| Published By: | Wiley |
| ASIN: | 0471227293 |
| Category: | Book |
Since the release of Design Patterns in 1994, patterns have become one of the most important new technologies contributing to software design and development. In this volume Mark Grand presents 41 design patterns that help you create more elegant and reusable designs. He revisits the 23 "Gang of Four" design patterns from the perspective of a Java programmer and introduces many new patterns specifically for Java. Each pattern comes with the complete Java source code and is diagrammed using UML.
Patterns in Java, Volume 1 gives you:
The CD-ROM contains:
The guide opens with background on pattern research, including the groundbreaking Design Patterns. This new title goes further, with 41 software patterns, all illustrated with UML diagrams and sample Java code. Early patterns, such as Delegation and Proxy, show how classes can work together without relying on inheritance. Next come creational patterns, such as the Factory and Builder patterns and the newer Object Pool pattern (which can be used to pool database connections for faster performance).
Subsequent sections move on to partitioning patterns, such as the Layered Initialization, as well as structural patterns, such as the Adapter, Facade, and Flyweight patterns. A section on behavioral patterns mixes older patterns such as the Chain of Responsibility and the Strategy with newer designs such as the Little Language and Snapshot patterns. The book closes with seven newer patterns for designing distributed and multitasked systems. --Richard Dragan
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.
The book begins poorly and gets worse. Specifically, the author definitely has a pension for patronizing his audience. He speaks as though he invented Patterns and is delivering them to the masses after bringing them down from the mountains inscribed on clay tablets.
Now, I'm not a guy to worry too much about a few typos here and there. After all, mistakes are made in code and text alike. However, the author's examples are not at all practical to the point of being useless and far too many of them flat out don't work!!
I'm not so much upset about the measly two bucks as I am about the several hours lost trying to decipher what the author meant and working through the typos. Anyway, hopefully this review will save someone else the time I lost.