Patent ID: 7657558

Claim:
A computer program product for implementing, in a computer capable of supporting multiple objects each having at least one interface, a method of establishing a relationship between the objects by linking object interfaces to objects as opposed to establishing relationships between entire objects, the computer program product comprising: a computer-readable storage medium storing computer-executable instructions for performing the method, including: instantiating a plurality of objects at the computer, each of the plurality of objects being an instance of one or more classes established at the computer, wherein the plurality of objects includes at least: an origin object that includes an origin interface; and a destination object that includes a destination interface; and establishing a relationship between the origin object and the destination object by establishing: a first collection supported by the origin interface, the first collection including a logical link to the destination object, the logical link of the first collection including a reference to a first collection object, which includes a reference to a relationship object, which in turn includes a reference to the destination object, thereby logically linking the origin interface and the destination object; the logical link included in the first collection further comprising a reference to an additional collection object that in turn includes a reference to the destination object, thereby further logically linking the origin interface and the destination object; and a second collection supported by the destination interface, the second collection including a logical link to the origin object, the logical link of the second collection including a reference to a second collection object, which includes a reference to the relationship object, which in turn includes a reference to the origin object, thereby logically linking the destination interface and the origin object, the logical link included in the second collection further comprising a reference to another additional collection object that in turn includes a reference to the origin object, thereby logically linking the destination interface and the origin object.