On Oct 30, 2008, at 4:46 PM, Chuck Hill wrote:

Hi David,


On Oct 30, 2008, at 2:44 AM, David Avendasora wrote:

I have several places in my application where a large number of EOs exist in the DB that are directly dependent upon other EOs. If the depended-upon EOs change, then all the dependent EOs may need to be updated.

Are these all guaranteed to be in memory at the same time? Do you run multiple application instances?

Well... Multiple Apps (JC & Web) accessing the same DB via a common foundation framework. But only one instance of each application.

This seems to me like the perfect use of the Observer Pattern.

Or not. It sounds more like Publish - Subscribe. Or is that the same...?

Yep. Same thing.

For example. If a Part's BOM is updated the nutrition information for that Part may need to be updated as well. Calculating the current nutrition information is too expensive to do it everywhere it is needed so it is saved in the database. I also maintain historical nutritional information as well and that shouldn't be updated, only the current information should be.

What I'd like to do is to have the "current" Nutrition object observe the Part object.

Or have the part broadcast a NSNotification when it is modified. Then any other objects can choose to subscribe to this notification if they deem it interesting.

This sounds exactly like what I want. I figured there had to be a WO- way of doing this.

If the Part object is updated in a significant way, then the Nutrition object will get notified to update itself.

Publish - Subscribe gives a bit more decoupling between the change and the response.

I guess the key is that the Part will not know what is significant to the subscribers. Some subscribers could potentially ignore some notifications. Is this possible?

What I'm trying to figure out is how to persist this information. I don't think I want to model the relationship, do I?

I don't know. It is your model. What is it you are thinking of persisting?

What subscribers a publishing object has and vise-versa. This isn't a per-ec thing, it should be remembered across sessions.

I looked at EOObserving but I think that's more about catching changes between two objects already in memory.

How would I model EOEnterpriseObject <<->> EOEnterpriseObject anyway? Using EOIDs?


Now, I think I am lost.

Never-mind that last part. It was me trying to do things the hard way.

Dave
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to