Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
— Alec Sharp
Programmers should avoid writing code that looks like:
colloquially known as a “Train Wreck”. This is bad because this
one line depends on the interfaces and implied structure of three
The solution is described by the heuristic "Tell, Don't Ask" , so we rewrite our
and let the implementation of the dog decide what this means.