When an item changes, it updates the Queue object, does what ever queue operations are neccessary, then updates the DocApprovalManager object which again performs any manager type operations that may be neccessary.
Sounds like a workable approach if you need to make sure that first the Queue has access to the Item, and then the Manager. If Manager and Queue can operate independently, both could observe Item, thus simplifying the dependencies.
There's a tutorial on DeveloperWorks on event delivery techniques in Java. [ November 17, 2005: Message edited by: Ulf Dittmer ]