Combination of inheritance hierarchies

Abstract
Making extensions to existing systems is a critically important activity in object-oriented proexisting application. We are in full agreement with Lieberman [7] that one wants a small extension to behavior to require just a small extension to code, and that adding new code is good, whereas modifying existing code is bad. We call this approach “extension-by-addition” [16]. gramming. 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.

This publication has 19 references indexed in Scilit: