Iterator Pattern
Source:: Software Design Patterns - Best Practices for Software Developers
Definition
A pattern that allows traversing the elements of an aggregate or a collection sequentially without exposing the underlying implementation.
The Iterator is a design pattern where iterators (objects that allow us to traverse through all the elements of a collection) access the elements of an aggregate object sequentially without needing to expose its underlying form.