Sequentially access the elements of a collection 

Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.

Iterator Design Pattern