A note on type composition and reusability

With the increasing use of object-oriented approaches to the development of libraries of reusable software components, it is useful to look at various type constructions that affect the reusability of objects. Though many people equate reusability with inheritance, another important form of reusability is the composition of one object from other objects. This paper looks at several common ways of organizing objects and how these organizations can reduce the reusability of the object definitions.