I\'m often encountering a situation where I must decide where to subscribe to events of the inner object?
For example, I have an object model looks like this:
There is way too much public
stuff in your example. Hope I'll make sense below:
#2 and #3 are not good: ClassC should handle and implement the events, handling them and letting them "bubble up" (invoking their own, same, event) for ClassD to handle correctly.
Basically, all of them should handle all events, either reacting to them (as in ClassB to ClassA's events) or just propagating them.