Benefits:
• It supports variations in the traversal of a collection.
• It simplifies the interface to the collection.
Applicable Scenarios:
• Access to a collection object is required without having to expose its internal representation.
• Multiple traversals of objects need to be supported in the collection.
• A universal interface for traversing different structures needs to be provided in the collection.