Aspects: Extending objects to support multiple, independent roles
Abstract
The type systems of most object-oriented database systems (OODBSs) descend from traditional object-oriented programming languages. While these systems can capture many interesting relationships among entities, such as classification and subtyping, they do not typically allow an object to change type, and they only partially support the modelling of objects that have many types. However, such characteristics are particularly common among the very entities (e.g., people) that these systems are intended to model. We introduce aspects, a new mechanism designed to meet these modelling requirements within the framework of a. strongly-typed OODBS. An aspect extends an existing object with new state and new behavior while maintaining the same object identity. In addition to the modelling of roles, aspects have other interesting applications, such as encapsulating the result of a query.