13 of 14 people found the following review helpful
Object-Oriented Design and Pattersn by Cay Horstmann,
This review is from: Object-Oriented Design & Patterns (Paperback)
Reviewer: Dr. Alexander Yakhnis, firstname.lastname@example.org
I like the book and have taught Spring 2004 Object-oriented Development (CSC 429 ) course at SUNY College at Brockport, New York. I have taught the material from Chapter I through 6. I have also used the material from Ch. 8 Object-Oriented Frameworks for 2 Independent Study Courses with 2 students during Summer 2004.
I find chapters 4 and 5 the best hands on introduction to Design Patterns that makes the corresponding material of The Gang of Four book quite understandable and it is better by far than many other attempts to introduce design patterns. The author plays to an advantage the use of Java and its libraries already based on some of the design patterns that many other authors have not exploited despite existence of Design Patterns presented in Java.
I also find the choice of 5 patterns: Iterator, Strategy, Observer, Composite and Decorator very tasteful as well as very useful. The author's problem examples illustrating the use of design patterns, particularly, the Invoice example is excellent.
The material in Ch. 4 on Interface Types leads to design patterns gracefully, and one can obviously recognize Strategy patter playing important role unnamed yet. This looks to me a good arrangement. Exercises reinforce the ideas very well. If some more exercises will be added that would be a nice improvement.
The author succeeds in making clear the concept of Object-Oriented Frameworks in introductory textbook. Separation of a framework and applications built on it is very well presented. Use of sequence diagrams helps to understand OO Framework. I would suggest that the concept of a Use Case and collaboration diagrams as alternative to sequence diagrams helps to get into the heart of how a framework achieves a goal relevant to a user. An excellent example of such a goal is presented in Ch. 8 for the Graph Framework.
When I was teaching the course I have attempted to replace The Object-Oriented Design Process from Ch. 2 by elements of Craig Larman textbook Applying UML and Patterns (Completely different patterns there than the 5 mentioned above). It helped me to reinforce software engineering concepts taught by Craig Larman that I have taught in software engineering course and also provided good point of view for understanding the OO Frameworks where some of the goals served by an OO Framework are viewed as Use Cases.
I would use the book again for CSC 429 Object-Oriented Development without hesitation should I be teaching this course again. Also, I continue to use OO Design and Patterns as a source of material for Independent Studies.
Finally, I congratulate the author for making available and understandable the concept of Design Patterns as practical way of building OO software at undergraduate level.