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.