VisitorVisitor pattern is a way of separating an algorithm from an object structure on which it operates.