When I design my system from scratch, I often face a dilemma whether my object should push information into another objects OR whether the objects should
According to tell dont ask, push is better - or more OO. You don't want to query object for data so you can do something, you want object to do it, because he's the one who knows his data.