The GoF design patterns book defines Iterator design pattern as follows - 'Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation'