![]() |
|
Patterns in Java, Volume 2, by Mark Grand, introduces patterns to the reader and applies them to Java. It is part of a projected three-volume series of which volumes one and two are now published. It is also part of a commendable Wiley Computer Publishing Java initiative of which several books (Graphics Programming for JFC, Programming Mobile Objects in Java, and so on) have already been reviewed on the ERCB and of which Advanced Techniques for Java Developers will be reviewed soon.
Although I haven't seen Volume 1, Patterns in Java, Volume 2 seems to restart at the beginning, describing the history of the Patterns metaphor in software design and introducing the reader to UML before proceeding to the patterns.
The book divides the discussion into the software life cycle, GRASP patterns, GUI design patterns, organizational coding patterns, coding optimization patterns, code robustness patterns, and testing patterns. There's also a brief bibliography devoted to sources of citations in the text and an appendix presenting an overview (or headline summary, rather) of patterns in Java with reference to the patterns contained in both Volume 1 and Volume 2.
While several of the Wiley Java series appear aimed both at intermediate programmers exploring programming through Java and at experienced software engineers looking for quick Java immersion, Patterns in Java, Volume 2 seems most suitable for programmers becoming seriously involved in Java early in their career. This assessment is occasioned by the book's attempt to shoehorn all of computer science into the Patterns metaphor.
Each new wave in programming brings with it the temptation to view all that has come before in terms of the new approach. This sort of thing in print is only entertaining to the enthusiast. When the author learnedly cites Jennifer Tildwell's "Interaction Patterns" pattern "Disabled Irrelevant Things" as authority that we should hide and disable GUI elements that are not relevant in the current context, it's hard not to think of Monty Python and the Theory of the Brontosaurus being Small at One End, Large in the Middle, and Small at the Other End.
And you must seriously question the value of the author's approach even for the novice when concepts such as lookup tables and loop optimization are presented in Patterns terms. Aren't these elements of the art more effectively viewed in classic terms and at a lower level? A discussion of the irrational, architecturally imposed, metaphor-free limitations of electronic computer programming as it has evolved from the von Neumann model in terms of Patterns is like trying to catch an elephant by looking at it through the wrong end of the telescope and grasping the tiny beast with tweezers.
It's good that the Patterns idea is catching on. Years ago, our team used the term "software clichés" for the same thing. And, yes, there can be a great deal of value in raking through extant praxis and experimentally notating the same in the new Patterns metaphor. You could infer from a reading of Patterns in Java, Volume 2 that the Patterns methodology has a lot of maturing to do, mostly along the lines of "de minimis non curat lex" ("the law does not concern itself with the trivial"). Still, Mark Grand is to be commended for his labor sowing what promises in time to become a capable design methodology in the fertile fields of Java.
-- Jack Woehr
| Readability |
|
| Originality |
|
| Organization |
|
| Accuracy |
|
| Consistency |
|
| Depth |
|
| Timeliness |
|
| Editing |
|
| Design |
|
| Overall Value |
|
Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.