Consider we have something like this:
A person, which has a physical body with arms, each arm has a hand, each hand fingers, and each finger a fingernail.
Another example: we have a car and a car-wheel in it.
So now I want to tune the fingernail a little bit, or the car-wheel, in both cases I want to change the color.
I go to a Person-Tuning-Garage, in which case I have to dive through the object-graph to get to the object (“fingernail”) i’m interested in:
I don’t want to let the person itself decide which fingernail I am going to tune.
In the car scene, I would allow the user to rotate the car-wheel, so the user has to ask the car object for the car-wheel to rotate it; here we have another problem.
If the user wants to rotate the wheel, before letting the user rotate it, the wheel must ask the car if there are no stones at the care-tire and only then the car wheel is allowed to rotate. Bumps in the street also forbid rotating the wheel from the car-side. So we have a cyclic dependency.
My questions are: