Visitor

This Design Pattern stems from [DP95], pp. 331. There the pattern is described as:

"Represents an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates. "