Object-Oriented Design and Patterns, 2nd Edition
June 2005, ©2006
Chapter 1. A Crash Course in Java.
Chapter 2. the Object-Oriented Design Process.
Chapter 3. Guidelines for Class Design.
Chapter 4. Interface Types and Polymorphism.
Chapter 5. Patterns and GUI Programming.
Chapter 6. Inheritance and Abstract Classes.
Chapter 7. The Java Object Model.
Chapter 8. Frameworks.
Chapter 9. Multithreading.
Chapter 10. More Design Patterns.
o the use of generic collections and the "for each" loop
o a detailed discussion of parameterized type constraints
o autoboxing and varargs methods, particularly in the reflection API
o multithreading with the java.util.concurrent package
· Makes object-oriented design principles accessible to beginning students.
· Examples are carefully chosen to make design patterns easy to remember.
· Pedagogy to support student learning is highlighted throughout the text and includes:
o Special Topics introduce optional background material or advanced subjects
o Design Patterns are presented in a standard format along with appropriate context for use, the solution, and a UML diagram of the pattern elements
o Notes highlight important or interesting material
o Internet notes contain links to further information including locations for downloadable programming tools, documentation, and articles related to chapter topics
o Tips explain good programming practices and help students avoid common errors.
· The author's experience as a programmer helps readers appreciate the value of object-oriented design principles in their programming; his experience as a teacher gives them a context for understanding and applying these ideas that is geared to their level.
· Concepts such as interfaces, inner classes, reflection, and multithreading give readers an introduction to advanced Java language concepts.
· Introduces data structures as needed, so the book may be used before or after a formal course in data structures.
· Uses the Swing user interface toolkit and Java collections library to illustrate design patterns and how they may be applied.
· Chapter 1 serves as a crash course in Java for readers who know C++.
· Horstmann integrates the use of tools such as BlueJ, javadoc, and Junit, as well as other experimental tools.
· Presents and utilizes the most commonly used subset of the UML notation, starting in Chapter 2.
· The Capstone chapter includes the development of a graph editor framework and its specialization to a UML class diagram editor. Readers not only see how design principles relate to the implementation of the editor, but also better understand the easy-to-use UML editor, Violet, provided by the author.