The strategy determines the order in which nodes in the structure are traversed.
An object that can be visited by a visitor.
Reflective visitor that visits the most specific implementation of visit() methods.