Motivation for iterators
Don't want to bloat the List interface with
several different traversals
» Even if you do, you can't anticipate all the possible
traversals
Might want >1 traversal on the same list
Iterator moves responsibility for access
and traversal from the aggregate to an
iterator object