Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Java design patterns : a tutorial
Cooper J., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000. 329 pp. Type: Book (9780201485394)
Date Reviewed: Mar 1 2000

Being an expert programmer requires the ability to discover and apply patterns. Design patterns are strategies that provide reusable solutions for recurring problems. Patterns are useful for improving the extensibility and flexibility of software systems, isolating code changes, and providing a vocabulary for communication among developers.

This tutorial book presents the object-oriented design and programming patterns described in the flagship text [1], and shows how to use these patterns in Java programs. The book consists of six sections and includes a CD-ROM containing the Java code along with Unified Modeling Language (UML) diagrams for the program examples.

The first section defines the concept of design patterns and illustrates it with the model-view-controller framework. Three types of patterns are identified: creational, structural, and behavioral.

The second section presents six creational patterns: factory, factory method, abstract factory, singleton, builder, and prototype. The third section covers seven structural patterns: adapter, bridge, composite, decorator, facade, flyweight, and proxy. The fourth section describes 11 behavioral patterns: chain of responsibility, command, interpreter, iterator, mediator, memento, observer, state, strategy, template, and visitor. Each pattern is illustrated by at least one visual Java program example, and for each example there is a complete program on the CD-ROM. Most chapters conclude with a set of “thought questions” that ask the reader to recognize and apply patterns.

The fifth section describes the main classes of the Java Foundation Classes (JFCs). These classes are used in the examples throughout the preceding sections. The design patterns used by JFCs are highlighted in this section.

The final section discusses three case studies of applying design patterns. Unfortunately, the case studies are rather shallow, and page 310 contains a reference to the nonexistent figure number 34.3. Generally, it is regrettable that the book contains many typographical errors and poorly indented code fragments.

Despite these drawbacks, those who are conversant in Java will find this book useful for learning the essentials about patterns. The reason for this is threefold. First, the book gives a clear and well-written description of the common object-oriented design patterns. Second, it takes a practical approach, providing instructive Java programs for each design pattern. Third, it provides UML class diagrams for the Java programs, facilitating understanding of the interactions between the classes.

Reviewer:  Gabriel Mateescu Review #: CR122829 (0003-0153)
1) Gamma, E.; Helm, R.; Johnson, R.; and Vlissides, J. Design patterns: elements of reusable object-oriented software. Addison Wesley, Reading, MA, 1995.
Bookmark and Share
  Featured Reviewer  
 
Patterns (D.3.3 ... )
 
 
Frameworks (D.3.3 ... )
 
 
Java (D.3.2 ... )
 
 
Object-Oriented Programming (D.1.5 )
 
 
Reusable Software (D.2.13 )
 
Would you recommend this review?
yes
no
Other reviews under "Patterns": Date
Open pattern matching for C++
Solodkyy Y., Dos Reis G., Stroustrup B.  GPCE 2013 (Proceedings of the 12th International Conference on Generative Programming: Concepts & Experiences, Indianapolis, IN, Oct 27-28, 2013)33-42, 2013. Type: Proceedings
Jan 29 2014
MapReduce design patterns: building effective algorithms and analytics for Hadoop and other systems
Miner D., Shook A., O’Reilly Media, Inc., Sebastopol, CA, 2013.  230, Type: Book (978-1-449327-17-0)
Aug 22 2014
Cyberpatterns: unifying design patterns with security and attack patterns
Blackwell C., Zhu H., Springer Publishing Company, Incorporated, New York, NY, 2014.  264, Type: Book (978-3-319044-46-0)
Sep 11 2014
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy