Combination of Inheritance Hierarchies
Abstract
Making extensions to existing systems is a critically important activity in object-oriented programming. This paper proposes an approach in which extensions of all kinds are clearly separated from the base hierarchy upon which they are built, for ease of distribution and combination. Extensions, including extensions to existing classes, are written in separate, sparse extension hierarchies. The entire system is obtained by combining the extension hierarchies with the base hierarchy. Sequences of successive extensions can be combined using an extension operator, and parallel extensions can be combined using a merge operator, which might identify conflicts that must be reconciled. System building takes place at two levels: combining existing extensions from a library using these operators, and building new extensions when existing ones are not adequate. New extensions built in this way are added to the library, and so should be written to be as general and reusable as possible. © 1992, ACM. All rights reserved.