Rather than use the Visitor pattern to supply additional functionality, we could have the collection class involved in the situation supply an iterator that the client can use to step through the elements and do whatever processing it needs to do. Give the details and compare the advantages and disadvantages of this approach when compared to the Visitor pattern.