The iterator pattern provides a consistent way to sequentially access items in a collection that is independent of and separate from the underlying collection.
The figure below represents the iterator pattern.
Supports variations in the traversal of a collection
Simplifies the interface of the collection.
When to Use:
You should use the Interpreter pattern when you want to:
Access a collection object’s contents without exposing its internal representation.
Support multiple traversals of objects in a collection.
Provide a uniform interface for traversing different structures in a collection.
In object-oriented programming, the iterator pattern is a design pattern in which an iterator is used to traverse a container and access the container's elements.
The iterator pattern decouples algorithms from containers; in some cases, algorithms are necessarily container-specific and cannot be decoupled.
For example, the hypothetical algorithm SearchForElement can be implemented generally using a specified type of iterator rather than implementing it
as a container-specific algorithm. This allows SearchForElement to be used on any container that supports the required type of iterator.