1. You can get some object's guts, manipulate them and then reinsert
2. The original object maintains its own guts and outsiders just "tell
it", object.doYourThing ().
Which is better?
Approach 1 has guts everywhere. Knowledge about those guts sprayed all
over the place. This here, that there. Mess.
Approach 2 is simpler, easier, guts and knowledge of guts are in one
Imagine a door bell.
You need to open the box, get the wires out, know the wiring diagram,
connect the wires, trigger the ring.
A black box with a shiny green button with "Press to ring door bell"
written on it.