ABSTRACT

Successful object-oriented design involves reusable components and frameworks that support extensible, easily maintained software systems. In this chapter we present the foundations used throughout this book to support these goals. A reader interested in learning about object-oriented design might choose to read this chapter in its entirety. However, a reader using this book to find the most appropriate data structure or algorithm for a particular application, would be best served by reading Sections 5.1, 5.2, 5.6, 5.7, 5.8, and 5.10, and refer to the other sections as needed.