Notes by Stephen R. Palmer
|
Building Better Apps and
Applets Peter Coad's book, Java Design, was one of the first Java books to step up a level from programming constructs and syntax to consider Java's influence on object-oriented analysis and design. The impact of replacing of multiple inheritance with interfaces, built-in libraries supporting publish and subscribe and language facilities for concurrent threads are all considered and discussed in Peter's usual straightforward, no-nonsense style. The first edition of this book was published in 1996, and was my first Peter Coad book. Given to me by Jeff De Luca to read before I first met Peter, I read it in a single weekend. I could not put it down. So much of it spoke directly into my situation as a lead developer on my first Java project. Having battled through the standard texts from Booch, Raumbaugh and the gang of four (Gamma, Vlissides, Johnson, Helm) trying to learn to think and program in an object-oriented way with C++ for the previous two years, this book was simply a pleasure to read. The second edition published in 1998 added more on designing with Java interfaces and updated the content to cover the Java development Kit (JDK) 1.1. However, in the process the book grew in size and, for me, lost some of it's initial appeal. The new stuff on interfaces did not quite gel with my experience. Although Peter was kind enough to give me an acknowledgment for reviewing the second edition before it was printed, I think the first edition was, on the whole, the better book. |
|
|||||||||||||
|
Java has moved on considerably since the second edition was published and, unfortunately, there has been no third edition because Peter moved out of a technical role into a management role as founder of TogetherSoft at the end of 1999. Therefore, many of the Java specifics in the book, especially in the enterprise (J2EE) area, are no longer up to date. This is a shame because the design principles discussed still hold true. For example, the discussion on inheritance versus composition, and the five point checklist for appropriate use of inheritance are probably worth the price of the book on their own. Interestingly the last point in the inheritance checklist is much easier expressed in terms of modelling in colour. The chapter on designing with interfaces is also excellent, as is the discussion on designing publish/subscribe (observer pattern) frameworks. |
||||||||||||||