Patent ID: 7464383

Claim:
In a computer program, a method for managing dependencies among a first set of objects each having a value, the first set of objects including a first object and one or more second objects depending directly or indirectly on the first object, the one or more second objects including at least one observer-only second object, the method for maintaining dependencies comprising: when the value of the first object changes, invalidating the one or more second objects, including severing dependencies among the one or more second objects, the value of each second object only being recomputed when the respective second object is queried for a value; and causing each invalidated observer-only second object to recompute its value by querying the values of a second set of objects from which the observer-only second object depends, wherein querying the values of the second set of objects causes invalidated objects in the second set of objects to be recomputed using one or more requester objects, each requester object operating to request an object's value so that the requested value cannot change until the requester terminates, at which time all objects whose values were requested by the requester object are released.