Static Class Structure
Client
Aggregate interface
to create an Iterator object.
Iterator interface
to access and traverse an Aggregate object.
Aggregate
Iterator object.
Aggregate1,…
createIterator()
by returning an instance
of the corresponding iterator class (Iterator1).
Iterator
Aggregate object.
Iterator1,…
Iterator interface.
Dynamic Object Collaboration
Client object
uses an Iterator1 object
to traverse an
Aggregate1 object
front-to-back.
Client object
that calls createIterator()
on the Aggregate1 object.
Aggregate1 creates an Iterator1
object and returns (a reference to) it
to the Client.
Client uses the Iterator1
to traverse the elements of Aggregate1 front-to-back
(while iterator.hasNext(): iterator.next()).